home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / demo / mtrch228.lha / MTR / MT-Rechnung / MT-RechnungII < prev    next >
Text File  |  1996-01-30  |  100KB  |  2,960 lines

  1. /*
  2. $VER: MT-RechnungII 2.28 (30.01.96)
  3.  ******************************************************************/
  4. /*    Rechnungsprogramm für meine Bild- und Videobearbeitungsfirma    */
  5. /*                                MT Graphic & Design                                */
  6. /******************************************************************/
  7. /*    Autor:                    Manfred Tremmel                                    */
  8. /*    Programmiersprache:    ARexx                                                    */
  9. /******************************************************************/
  10.  
  11. IF(~show('l','rexxsupport.library')) THEN
  12.     CALL addlib('rexxsupport.library',0,-30,0);
  13. IF(~show('l','apig.library')) THEN
  14.     CALL addlib('apig.library',0,-30,0);
  15. IF(~show('l','rexxreqtools.library')) THEN
  16.     CALL addlib('rexxreqtools.library',0,-30,0);
  17. CALL SET_APIG_GLOBALS();
  18.  
  19. i = allocmem(346); 
  20. x = getscreendata(i,346,WBENCHSCREEN,0);
  21. SCREEN_X    = GETVALUE(i,68,2,'n');
  22. SCREEN_Y    = GETVALUE(i,70,2,'n');
  23. Font_X    = GETVALUE(i,145,1,'n');
  24. Font_Y    = GETVALUE(i,143,1,'n');
  25. call freemem(i,346);
  26.  
  27. i = allocmem(232);
  28. x = getprefs(i,232);
  29. B_laenge = GETVALUE(i,178,2,'n');
  30. call freemem(i,232);
  31.  
  32. winidcmp    = GADGETUP+VANILLAKEY+CLOSEWINDOW;
  33. winflags    = ACTIVATE+RMBTRAP+WINDOWCLOSE+WINDOWDRAG+GIMMEZEROZERO+WINDOWDEPTH;
  34.  
  35. wintitle    = "MT-Rechnung";
  36. Win_X1    = 29 * Font_X;
  37. Win_Y1    = 18 * Font_Y;
  38.  
  39. wintitle2    = "MT-Rechnung - Rechnung erstellen";
  40. Win_X2    = 80 * Font_X;
  41. Win_Y2    = 35 * Font_Y;
  42. IF SCREEN_Y < Win_Y2 THEN
  43.     do; 
  44.         Win_Y2    = 32 * Font_Y;
  45.         I_max        = 11;
  46.     end;
  47. ELSE
  48.     I_max        = 13;
  49.  
  50. wintitle3    = "MT-Rechnung - Drucken";
  51. Win_X3    = 45 * Font_X;
  52. Win_Y3    = Win_Y1;
  53.  
  54. wintitle4    = "MT-Rechnung - Adressen verwalten";
  55. Win_X4    = Win_X2;
  56. Win_Y4    = 32 * Font_Y;
  57.  
  58. wintitle5    = "MT-Rechnung - Artikel verwalten";
  59. Win_X5    = Win_X2;
  60. Win_Y5    = 14 * Font_Y;
  61.  
  62. wintitle6    = "MT-Rechnung - Prefs";
  63. Win_X6    = 23 * Font_X;
  64. Win_Y6    = 21 * Font_Y;
  65.  
  66. LF = '0a'x;
  67. FF = '0c'x;
  68. CR = '0d'x;
  69.  
  70. /* Druckereinstellungen: */
  71. ESC        = '1b'x
  72. D_Z_kl    = ESC || "[0z";
  73. D_Z_gr    = ESC || "[1z";
  74. D_Schr    = ESC || "[0m";
  75. D_SStand    = ESC || "[0w" || ESC || '[3"z' || ESC || "[3v";
  76. D_SGross    = ESC || '[4"z' || ESC || "[6w";
  77. D_SKlein    = ESC || "[4v" || ESC || "[4w";
  78. D_Br10    = ESC || "[0w";
  79. D_Br12    = ESC || "[2w";
  80. D_Br15    = ESC || "[4w";
  81. D_PEin    = ESC || "[2p";
  82. D_PAus    = ESC || "[1p";
  83. D_UEin    = ESC || "[4m";
  84. D_UAus    = ESC || "[24m";
  85. D_KEin    = ESC || "[3m";
  86. D_KAus    = ESC || "[23m";
  87. D_FEin    = ESC || "[1m";
  88. D_FAus    = ESC || "[22m";
  89. D_CSchw    = ESC || "[39m";
  90. D_CMag    = ESC || "[35m";
  91. D_CZyan    = ESC || "[36m";
  92. D_CViol    = ESC || "[34m";
  93. D_CGelb    = ESC || "[33m";
  94. D_CRot    = ESC || "[31m";
  95. D_CGruen    = ESC || "[32m";
  96. D_Rueck    = ESC || "c" || D_CSchw || D_Schr || D_SStand || D_Br10 || D_Z_gr|| D_PAus || D_UAus || D_KAus || D_FAus;
  97.  
  98. ReqCent = "rt_reqpos=reqpos_centerscr";
  99.  
  100. IF SCREEN_X < Win_X2 | SCREEN_Y < Win_Y2 THEN
  101.     rtezrequest("Workbench Screen muß mindestens" LF ||,
  102.         Win_X2  "x" Win_Y2 "Bildpunkte groß sein!",,,ReqCent);
  103. ELSE
  104.     DO;
  105.         datum = UP_Datum();                            /* Ermittlung des Datums*/
  106.         CALL UP_Kund_lesen;                            /* Einlesen der Kunden    */
  107.         CALL UP_Artikel_lesen;                        /* Einlesen der Artikel    */
  108.         CALL UP_Rechnung_lesen;                        /* Einlesen der Rechn.    */
  109.         CALL UP_Prefs_lesen;                            /* Einlesen der Prefs    */
  110.  
  111.         call DefineGads1;
  112.         DefGads2 = 0;
  113.         DefGads3 = 0;
  114.         DefGads4 = 0;
  115.         DefGads5 = 0;
  116.         DefGads6 = 0;
  117.  
  118.         portname = "MT_Rechnung";
  119.         p = openport(portname);
  120.  
  121.         WaitForPort portname;
  122.         w1        = OPENWINDOW(portname,(Screen_X-Win_X1)/2,(Screen_Y-Win_Y1)/2,Win_X1,Win_Y1,0,1,winidcmp,winflags,
  123.                     ,wintitle,scr,0,null(),null(),conxgad);
  124.         rpw1    = GETWINDOWRASTPORT(w1);
  125.  
  126.         call GT_REFRESHWINDOW(w1,null());
  127.         extime    = 0;
  128.         apen        = 1;
  129.         DO WHILE extime = 0;
  130.             x    = waitpkt(portname);
  131.             DO FOREVER;
  132.                 msg        = getpkt(portname);
  133.                 IF msg    = '0000 0000'x THEN LEAVE;
  134.                 msgclass    = getarg(msg,0);
  135.                 msgcode    = getarg(msg,1);
  136.                 msgid        = getarg(msg,9);
  137.                 x            = reply(msg,0);
  138.                 SELECT
  139.                     WHEN msgid = 10 | msgcode = 65 | msgcode = 97 THEN
  140.                         CALL UP_Adressen;
  141.                     WHEN msgid = 12 | msgcode = 84 | msgcode = 116 THEN
  142.                         CALL UP_Artikel;
  143.                     WHEN msgid = 13 | msgcode = 82 | msgcode = 114 THEN
  144.                         CALL UP_Rechnung;
  145.                     WHEN msgid = 14 | msgcode = 68 | msgcode = 100 THEN
  146.                         CALL UP_Drucken;
  147.                     WHEN msgid = 15 | msgcode = 80 | msgcode = 112 THEN
  148.                         CALL UP_Prefs;
  149.                     WHEN msgid = 17 | msgclass = CLOSEWINDOW | msgcode = 69 | msgcode = 101 | msgcode = 27 THEN
  150.                         extime = rtezrequest("Programm wirklich beenden?","Ende|Weitermachen",,ReqCent);
  151.                     OTHERWISE
  152.                         NOP;
  153.                 END;
  154.             END;
  155.         END;
  156.         CALL CLOSEWINDOW(w1);
  157.  
  158.         CALL FREEGADGETS(conxgad);
  159.         CALL FREETHIS(newgadx);
  160.         CALL FREEVEC(GPoint);
  161.         IF DefGads2 > 0 THEN
  162.             DO;
  163.                 IF DefGads2    > 1 THEN
  164.                     CALL UP_Rechnung_schreiben;
  165.                 CALL FREEGADGETS(conxgad2);
  166.                 CALL FREETHIS(newgadx2);
  167.                 CALL FREEVEC(GPoint2);
  168.             END;
  169.         IF DefGads3 > 0 THEN
  170.             DO;
  171.                 CALL FREEGADGETS(conxgad3);
  172.                 CALL FREETHIS(newgadx3);
  173.                 CALL FREEVEC(GPoint3);
  174.                 Call FREETHIS(mylabels);
  175.             END;
  176.         IF DefGads4 > 0 THEN
  177.             DO;
  178.                 IF DefGads4    > 1 THEN
  179.                     CALL UP_Kund_schreiben;
  180.                 CALL FREEGADGETS(conxgad4);
  181.                 CALL FREETHIS(newgadx4);
  182.                 CALL FREEVEC(GPoint4);
  183.                 CALL FREETHIS(Kundlabels);
  184.             END;
  185.         IF DefGads5 > 0 THEN
  186.             DO;
  187.                 IF DefGads5    > 1 THEN
  188.                     CALL UP_Artikel_schreiben;
  189.                 CALL FREEGADGETS(conxgad5);
  190.                 CALL FREETHIS(newgadx5);
  191.                 CALL FREEVEC(GPoint5);
  192.             END;
  193.         IF DefGads6 > 0 THEN
  194.             DO;
  195.                 IF DefGads6 > 1 THEN
  196.                     CALL UP_Prefs_schreiben;
  197.                 CALL FREEGADGETS(conxgad6);
  198.                 CALL FREETHIS(newgadx6);
  199.                 CALL FREEVEC(GPoint6);
  200.             END;
  201.  
  202.         CALL FREEVISUALINFO(scrvinfo);
  203.         CALL UNLOCKPUBSCREEN(null(),scr);
  204.     END;
  205. CALL remlib('rexxreqtools.library');
  206. CALL remlib('apig.library');
  207. CALL remlib('rexxsupport.library');
  208. address COMMAND 'avail >NIL: flush'
  209. EXIT;
  210.  
  211. /* Unterprogramm zum Einlesen der Einstellungen (Prefs.dat)            */
  212. UP_Prefs_lesen:
  213.     Prefs_datei    = "Prefs.dat";
  214.     IF OPEN(P_dat,Prefs_datei,'read') THEN
  215.         DO;
  216.             MWSt_Satz.1 = READLN(P_dat);
  217.             MWSt_Satz.2 = READLN(P_dat);
  218.             AnzeigePGM    = READLN(P_dat);
  219.             Druckport    = READLN(P_dat);
  220.             D_XAbst        = READLN(P_dat);
  221.             D_YAbst        = READLN(P_dat);
  222.             D_Durch        = READLN(P_dat);
  223.             IF EOF(P_dat) THEN
  224.                 D_Durch    = "J";
  225.             CLOSE(P_dat);
  226.         END;
  227.     ELSE
  228.         DO;
  229.             MWSt_Satz.1    = 15.0;
  230.             MWSt_Satz.2 = 7.0;
  231.             AnzeigePGM    = "SYS:SYSTEM/MultiView";
  232.             Druckport    = "PRT:";
  233.             D_XAbst        = 1;
  234.             D_YAbst        = 1;
  235.             D_Durch        = "J";
  236.         END;
  237.     MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1);
  238.     MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2);
  239.     MWSt_Rech.3 = 0;
  240. RETURN;
  241.  
  242. /* Unterprogramm zum Schreiben der Einstellungen (Prefs)                */
  243. UP_Prefs_schreiben:
  244.     IF OPEN(P_dat,Prefs_datei,'write') THEN
  245.         DO;
  246.             Schr_Text = MWSt_Satz.1||LF||MWSt_Satz.2||LF||AnzeigePGM||LF||Druckport||LF||D_XAbst||LF||D_YAbst||LF||D_Durch||LF;
  247.             WRITECH(P_dat,Schr_Text);
  248.             CLOSE(P_dat);
  249.         END;
  250. RETURN;
  251.  
  252. /* Unterprogramm zum Einlesen der Kundenliste (Kunden.dat)            */
  253. UP_Kund_lesen:
  254.     K_datei    = "Kunden.dat";
  255.     K_max        = 0;
  256.     IF OPEN(K_dat,K_datei,'read') THEN
  257.         DO;
  258.             FI_VorName    = READLN(K_dat);
  259.             FI_Name        = READLN(K_dat);
  260.             FI_Strasse    = READLN(K_dat);
  261.             FI_PLZ        = READLN(K_dat);
  262.             FI_ORT        = READLN(K_dat);
  263.             FI_Land        = READLN(K_dat);
  264.             FI_GebTag    = READLN(K_dat);
  265.             FI_Rabatt    = READLN(K_dat);
  266.             FI_Tel        = READLN(K_dat);
  267.             FI_Fax        = READLN(K_dat);
  268.             FI_Dfue        = READLN(K_dat);
  269.             FI_EMail1    = READLN(K_dat);
  270.             FI_EMail2    = READLN(K_dat);
  271.             FI_EMail3    = READLN(K_dat);
  272.             FI_Anrede    = READLN(K_dat);
  273.             FI_BAnr        = READLN(K_dat);
  274.             FI_Komm        = READLN(K_dat);
  275.             FI_BLZ        = READLN(K_dat);
  276.             FI_BankBez    = READLN(K_dat);
  277.             FI_BankKurz    = READLN(K_dat);
  278.             FI_Konto        = READLN(K_dat);
  279.             DO forever;
  280.                 K_max  = K_max + 1;
  281.                 i = right(("000000" || K_max),6);
  282.                 KD_VorName.i  = READLN(K_dat);
  283.                 IF EOF(K_dat) THEN LEAVE;
  284.                 KD_Name.i        = READLN(K_dat);
  285.                 KD_Strasse.i    = READLN(K_dat);
  286.                 KD_PLZ.i            = READLN(K_dat);
  287.                 KD_ORT.i            = READLN(K_dat);
  288.                 KD_Land.i        = READLN(K_dat);
  289.                 KD_GebTag.i        = READLN(K_dat);
  290.                 KD_Rabatt.i        = READLN(K_dat);
  291.                 KD_Tel.i            = READLN(K_dat);
  292.                 KD_Fax.i            = READLN(K_dat);
  293.                 KD_Dfue.i        = READLN(K_dat);
  294.                 KD_EMail1.i        = READLN(K_dat);
  295.                 KD_EMail2.i        = READLN(K_dat);
  296.                 KD_EMail3.i        = READLN(K_dat);
  297.                 KD_Anrede.i        = READLN(K_dat);
  298.                 KD_BAnr.i        = READLN(K_dat);
  299.                 KD_Komm.i        = READLN(K_dat);
  300.                 KD_BLZ.i            = READLN(K_dat);
  301.                 KD_BankBez.i    = READLN(K_dat);
  302.                 KD_BankKurz.i    = READLN(K_dat);
  303.                 KD_Konto.i        = READLN(K_dat);
  304.             END;
  305.             CLOSE(K_dat);
  306.         END;
  307.     ELSE
  308.         K_max  = 1;
  309.     CALL UP_K_max_init;
  310. RETURN;
  311.  
  312. UP_K_max_init:
  313.     i = right(("000000" || K_max),6);
  314.     K_max = i;
  315.     KD_VorName.i    = "";
  316.     KD_Name.i        = "";
  317.     KD_Strasse.i    = "";
  318.     KD_PLZ.i            = "";
  319.     KD_ORT.i            = "";
  320.     KD_Land.i        = "";
  321.     KD_GebTag.i        = "";
  322.     KD_Rabatt.i        = "";
  323.     KD_Tel.i            = "";
  324.     KD_Fax.i            = "";
  325.     KD_Dfue.i        = "";
  326.     KD_EMail1.i        = "";
  327.     KD_EMail2.i        = "";
  328.     KD_EMail3.i        = "";
  329.     KD_Anrede.i        = "";
  330.     KD_BAnr.i        = "";
  331.     KD_Komm.i        = "";
  332.     KD_BLZ.i            = "";
  333.     KD_BankBez.i    = "";
  334.     KD_BankKurz.i    = "";
  335.     KD_Konto.i        = "";
  336. RETURN;
  337.  
  338. /* Unterprogramm zum schreiben der Kundenliste (Kunden.dat)            */
  339. UP_Kund_schreiben:
  340.     IF OPEN(K_dat,K_datei,'write') THEN
  341.         DO;
  342.             Schr_Text = FI_VorName||LF||FI_Name||LF||FI_Strasse||LF||FI_PLZ||LF||FI_Ort||LF||FI_Land||LF||FI_GebTag||LF||FI_Rabatt||LF||FI_Tel||LF;
  343.             Schr_Text = Schr_Text||FI_Fax||LF||FI_Dfue||LF||FI_EMail1||LF||FI_EMail2||LF||FI_EMail3||LF||FI_Anrede||LF||FI_BAnr||LF||FI_Komm||LF;
  344.             Schr_Text = Schr_Text||FI_BLZ||LF||FI_BankBez||LF||FI_BankKurz||LF||FI_Konto||LF;
  345.             WRITECH(K_dat,Schr_Text);
  346.             DO k = 1 to (K_max - 1);
  347.                 i = right(("000000" || k),6);
  348.                 Schr_Text = KD_VorName.i||LF||KD_Name.i||LF||KD_Strasse.i||LF||KD_PLZ.i||LF||KD_Ort.i||LF||KD_Land.i||LF||KD_GebTag.i||LF;
  349.                 Schr_Text = Schr_Text||KD_Rabatt.i||LF||KD_Tel.i||LF||KD_Fax.i||LF||KD_Dfue.i||LF||KD_EMail1.i||LF||KD_EMail2.i||LF||KD_EMail3.i||LF;
  350.                 Schr_Text = Schr_Text||KD_Anrede.i||LF||KD_BAnr.i||LF||KD_Komm.i||LF||KD_BLZ.i||LF||KD_BankBez.i||LF||KD_BankKurz.i||LF||KD_Konto.i||LF;
  351.                 WRITECH(K_dat,Schr_Text);
  352.             END;
  353.             CLOSE(K_dat);
  354.         END;
  355. RETURN;
  356.  
  357. /* Unterprogramm zum Einlesen der Artikelliste (Artikel.dat)        */
  358. UP_Artikel_lesen:
  359.     A_datei    = "Artikel.dat"
  360.     A_max        = 0;
  361.     IF OPEN(A_dat,A_datei,'read') THEN
  362.         DO forever;
  363.             A_max                = A_max + 1;
  364.             i                    = right(("000000" || A_max),6);
  365.             AR_ArtBez.i        = READLN(A_dat);
  366.             IF EOF(A_dat) THEN LEAVE;
  367.             AR_ArtPreis.i    = READLN(A_dat);
  368.             AR_ArtBuch.i    = READLN(A_dat);
  369.             AR_ArtMWST.i    = READLN(A_dat);
  370.         END;
  371.     ELSE
  372.         A_max  = 1;
  373.     CLOSE(A_dat);
  374.     CALL UP_A_max_init;
  375. RETURN;
  376.  
  377. UP_A_max_init:
  378.     i = right(("000000" || A_max),6);
  379.     A_max        = i;
  380.     AR_ArtBez.i        = "";
  381.     AR_ArtPreis.i    = "";
  382.     AR_ArtBuch.i    = "";
  383.     AR_ArtMWST.i    = "";
  384. Return;
  385.  
  386. /* Unterprogramm zum schreiben der Artikelliste (Artikel.dat)       */
  387. UP_Artikel_schreiben:
  388.     IF OPEN(A_dat,A_datei,'write') THEN
  389.         DO k = 1 to (A_max - 1);
  390.             i = right(("000000" || k),6);
  391.             Schr_Text = AR_ArtBez.i ||LF|| AR_ArtPreis.i ||LF|| AR_ArtBuch.i ||LF|| AR_ArtMWSt.i ||LF;
  392.             WRITECH(A_dat,Schr_Text);
  393.         END;
  394.     CLOSE(A_dat);
  395. RETURN;
  396.  
  397. /* Unterprogramm zum Einlesen der Rechnungsliste (Rechnung.dat)        */
  398. UP_Rechnung_lesen:
  399.     R_datei    = "Rechnung.dat"
  400.     R_max        = 0;
  401.     IF OPEN(R_dat,R_datei,'read') THEN
  402.         DO forever;
  403.             R_max                = R_max + 1;
  404.             i                    = right(("000000" || R_max),6);
  405.             RE_Kunde.i        = READLN(R_dat);
  406.             IF EOF(R_dat) THEN LEAVE;
  407.             RE_Datum.i        = READLN(R_dat);
  408.             DO j = 1 to 13;
  409.                 RE_Art.j.i    = READLN(R_dat);
  410.                 RE_Anz.j.i    = READLN(R_dat);
  411.             END;
  412.             RE_Mahnung.i    = READLN(R_dat);
  413.         END;
  414.     ELSE
  415.         R_max    = 1;
  416.     CLOSE(R_dat);
  417.     CALL UP_Rech_Max_init;
  418. RETURN;
  419.  
  420. UP_Rech_Max_init:
  421.     i = right(("000000" || R_max),6);
  422.     R_max    = i;
  423.     RE_Kunde.i        = "";
  424.     RE_Datum.i        = datum;
  425.     DO j = 1 to 13;
  426.         RE_Art.j.i    = "";
  427.         RE_Anz.j.i    = "";
  428.     END;
  429.     RE_Mahnung.i    = "";
  430. RETURN
  431.  
  432. /* Unterprogramm zum schreiben der Rechnungsliste (Rechnung.dat)        */
  433. UP_Rechnung_schreiben:
  434.     IF OPEN(R_dat,R_datei,'write') THEN
  435.         DO k = 1 to (R_max - 1);
  436.             i = right(("000000" || k),6);
  437.             Schr_Text = RE_Kunde.i||LF||RE_Datum.i||LF;
  438.             DO j = 1 to 13;
  439.                 Schr_Text = Schr_Text||RE_Art.j.i||LF||RE_Anz.j.i||LF;
  440.             END;
  441.             Schr_Text = Schr_Text||RE_Mahnung.i||LF;
  442.             WRITECH(R_dat,Schr_Text);
  443.         END;
  444.     CLOSE(R_dat);
  445. RETURN;
  446.  
  447. DefineGads1:
  448.     scr        = LOCKPUBSCREEN("Workbench");
  449.     scrvinfo    = GETVISUALINFO(scr);
  450.     scrfont    = GETVALUE(scr,40,4,'p');
  451.     GPoint    = ALLOCVEC(4,MEMF_CLEAR);
  452.     conxgad    = CREATECONTEXT(GPoint);
  453.     PreGad     = conxgad;
  454.  
  455.     newgadx    = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,26*Font_X,1.5*Font_Y,"Adressverwaltung",PLACETEXT_IN,10,null());
  456.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  457.  
  458.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Artikelverwaltung",PLACETEXT_IN,12,null());
  459.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  460.  
  461.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Rechnungsverwaltung",PLACETEXT_IN,13,null());
  462.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  463.  
  464.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,7*Font_Y,26*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,14,null());
  465.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  466.  
  467.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,9*Font_Y,26*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,15,null());
  468.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  469.  
  470.     call SETNEWGADGET(newgadx,scrvinfo,scrfont,7*Font_X,14*Font_Y,15*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null());
  471.     PreGad    = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0);
  472. RETURN;
  473.  
  474. DefineGads2:
  475.     GPoint2    = ALLOCVEC(4,MEMF_CLEAR);
  476.     conxgad2    = CREATECONTEXT(GPoint2);
  477.     PreGad2    = conxgad2;
  478.  
  479.     newgadx2    = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,2*Font_X,1.5*Font_Y,"K",PLACETEXT_IN,10,null());
  480.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  481.  
  482.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14*Font_X,Font_Y,10*Font_X,1.5*Font_Y,"Kundennr:",PLACETEXT_LEFT,11,null());
  483.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  484.  
  485.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,35*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Vorname:",PLACETEXT_LEFT,12,null());
  486.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0);
  487.  
  488.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,60*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Name:",PLACETEXT_LEFT,13,null());
  489.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0);
  490.  
  491.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,7*Font_X,3*Font_Y,7*Font_X,1.5*Font_Y,"PLZ:",PLACETEXT_LEFT,14,null());
  492.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  493.  
  494.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,21*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Ort:",PLACETEXT_LEFT,15,null());
  495.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  496.  
  497.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Straße:",PLACETEXT_LEFT,16,null());
  498.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  499.  
  500.     DO I = 1 TO I_max;
  501.         CALL SETNEWGADGET(newgadx2,scrvinfo,scrfont,1.5*Font_X,(1.7*i+4)*Font_Y,2*Font_X,1.5*Font_Y,"A",PLACETEXT_IN,10+(10*i),null());
  502.         PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  503.  
  504.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,5*Font_X,(1.7*i+4)*Font_Y,9*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+1),null());
  505.         PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  506.  
  507.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14.5*Font_X,(1.7*i+4)*Font_Y,7.4*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+2),null());
  508.         PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,10,TAG_DONE,0);
  509.  
  510.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,22*Font_X,(1.7*i+4)*Font_Y,31.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+3),null());
  511.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  512.  
  513.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+4),null());
  514.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  515.  
  516.         call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+5),null());
  517.         PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  518.     END;
  519.  
  520.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,8.5*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Datum:",PLACETEXT_LEFT,150,null());
  521.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  522.  
  523.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,28.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"Rabatt:",PLACETEXT_LEFT,151,null());
  524.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  525.  
  526.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,45.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"MWSt:",PLACETEXT_LEFT,152,null());
  527.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  528.  
  529.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Endsumme:",PLACETEXT_LEFT,153,null());
  530.     PreGad2    = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0);
  531.  
  532.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,12*Font_X,(1.7*I_max+9)*Font_Y,10*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_LEFT,160,null());
  533.     PreGad2    = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0);
  534.  
  535.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,33*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,">",PLACETEXT_IN,161,null());
  536.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  537.  
  538.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,24*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,162,null());
  539.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  540.  
  541.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,42.5*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,163,null());
  542.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  543.  
  544.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,52*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,164,null());
  545.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  546.  
  547.     call SETNEWGADGET(newgadx2,scrvinfo,scrfont,61*Font_X,(1.7*I_max+9)*Font_Y,16*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,165,null());
  548.     PreGad2    = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0);
  549. RETURN;
  550.  
  551. DefineGads3:
  552.     GPoint3    = ALLOCVEC(4,MEMF_CLEAR);
  553.     conxgad3    = CREATECONTEXT(GPoint3);
  554.     PreGad3    = conxgad3;
  555.     mylabels    = make_labels();
  556.  
  557.     newgadx3    = MAKENEWGADGET(scrvinfo,scrfont,1*Font_X,2*Font_Y,12*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_ABOVE,10,null());
  558.     PreGad3    = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0);
  559.  
  560.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,6*Font_Y,12*Font_X,1.5*Font_Y,"Kunde:",PLACETEXT_ABOVE,11,null());
  561.     PreGad3    = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0);
  562.  
  563.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,9.5*Font_Y,12*Font_X,1.5*Font_Y,"Drucken ->",PLACETEXT_ABOVE,12,null());
  564.     PreGad3    = CREATEGADGET(CYCLE_KIND,PreGad3,newgadx3,GTCY_LABELS,mylabels,GTCY_Active,0,TAG_DONE,0);
  565.  
  566.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,12*Font_Y,12*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,13,null());
  567.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  568.  
  569.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,14.5*Font_Y,12*Font_X,1.5*Font_Y,"Verz.",PLACETEXT_IN,14,null());
  570.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  571.  
  572.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Rechnung",PLACETEXT_IN,15,null());
  573.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  574.  
  575.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Paketkarte",PLACETEXT_IN,16,null());
  576.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  577.  
  578.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,5*Font_Y,12.5*Font_X,1.5*Font_Y,"Zahlschein",PLACETEXT_IN,17,null());
  579.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  580.  
  581.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,7*Font_Y,12.5*Font_X,1.5*Font_Y,"Mahnung",PLACETEXT_IN,18,null());
  582.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  583.  
  584.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,9*Font_Y,12.5*Font_X,1.5*Font_Y,"Etikett",PLACETEXT_IN,19,null());
  585.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  586.  
  587.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,11*Font_Y,12.5*Font_X,1.5*Font_Y,"Umschlag",PLACETEXT_IN,20,null());
  588.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  589.  
  590.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,13*Font_Y,12.5*Font_X,1.5*Font_Y,"Art. Liste",PLACETEXT_IN,21,null());
  591.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  592.  
  593.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Adressliste",PLACETEXT_IN,22,null());
  594.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  595.  
  596.     call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Umsatzliste",PLACETEXT_IN,23,null());
  597.     PreGad3    = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0);
  598. RETURN;
  599.  
  600. make_labels:
  601.     ltxt.1    = "Drucker";
  602.     ltxt.2    = "Datei";
  603.     ltxt.3    = "Vorschau";
  604.     mlabels    = MAKEPOINTER(0,0,16,MEMF_CLEAR);
  605.     DO x = 1 to 3;
  606.         lbuf = MAKEPOINTER(mlabels,0,length(ltxt.x)+2,MEMF_CLEAR);
  607.         CALL export(lbuf,ltxt.x);
  608.         CALL SETVALUE(mlabels,(x-1)*4,4,'p',lbuf);
  609.     END;
  610. RETURN mlabels;
  611.  
  612. DefineGads4:
  613.     GPoint4    = ALLOCVEC(4,MEMF_CLEAR);
  614.     conxgad4    = CREATECONTEXT(GPoint4);
  615.     PreGad4    = conxgad4;
  616.     Kundlabels    = make_labels2();
  617.  
  618.     newgadx4    = MAKENEWGADGET(scrvinfo,scrfont,12*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Vorname  :",PLACETEXT_LEFT,10,null());
  619.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  620.  
  621.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Name     :",PLACETEXT_LEFT,11,null());
  622.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  623.  
  624.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Straße   :",PLACETEXT_LEFT,12,null());
  625.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  626.  
  627.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,3*Font_Y,8*Font_X,1.5*Font_Y,"PLZ      :",PLACETEXT_LEFT,13,null());
  628.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,5,TAG_DONE,0);
  629.  
  630.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Ort      :",PLACETEXT_LEFT,14,null());
  631.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  632.  
  633.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Land     :",PLACETEXT_LEFT,15,null());
  634.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,20,TAG_DONE,0);
  635.  
  636.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,7*Font_Y,12*Font_X,1.5*Font_Y,"Geburtst.:",PLACETEXT_LEFT,16,null());
  637.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,10,TAG_DONE,0);
  638.  
  639.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,7*Font_Y,20*Font_X,1.5*Font_Y,"Telefon  :",PLACETEXT_LEFT,17,null());
  640.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  641.  
  642.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"Fax      :",PLACETEXT_LEFT,18,null());
  643.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  644.  
  645.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"DFÜ      :",PLACETEXT_LEFT,19,null());
  646.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  647.  
  648.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail1   :",PLACETEXT_LEFT,20,null());
  649.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  650.  
  651.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail2   :",PLACETEXT_LEFT,21,null());
  652.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  653.  
  654.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,13*Font_Y,20*Font_X,1.5*Font_Y,"EMail3   :",PLACETEXT_LEFT,22,null());
  655.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  656.  
  657.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,13*Font_Y,26*Font_X,1.5*Font_Y,"Anrede   :",PLACETEXT_LEFT,23,null());
  658.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0);
  659.  
  660.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,15*Font_Y,65*Font_X,1.5*Font_Y,"BriefAn  :",PLACETEXT_LEFT,24,null());
  661.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0);
  662.  
  663.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,17*Font_Y,65*Font_X,1.5*Font_Y,"Kommentar:",PLACETEXT_LEFT,25,null());
  664.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,80,TAG_DONE,0);
  665.  
  666.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,19*Font_Y,65*Font_X,1.5*Font_Y,"Bank     :",PLACETEXT_LEFT,26,null());
  667.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0);
  668.  
  669.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"BLZ      :",PLACETEXT_LEFT,27,null());
  670.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  671.  
  672.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"Konto    :",PLACETEXT_LEFT,28,null());
  673.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  674.  
  675.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,23*Font_Y,20*Font_X,1.5*Font_Y,"Bankkurz :",PLACETEXT_LEFT,29,null());
  676.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0);
  677.  
  678.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,23*Font_Y,5*Font_X,1.5*Font_Y,"Rabatt   :",PLACETEXT_LEFT,30,null());
  679.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,2,TAG_DONE,0);
  680.  
  681.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,13.5*Font_X,26*Font_Y,16*Font_X,1.5*Font_Y,"Bearbeiten:",PLACETEXT_LEFT,40,null());
  682.     PreGad4    = CREATEGADGET(CYCLE_KIND,PreGad4,newgadx4,GTCY_LABELS,Kundlabels,TAG_DONE,0);
  683.  
  684.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,40*Font_X,26*Font_Y,32*Font_X,1.5*Font_Y,"Suche  :",PLACETEXT_LEFT,41,null());
  685.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0);
  686.  
  687.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,73*Font_X,26*Font_Y,4*Font_X,1.5*Font_Y,"Cal",PLACETEXT_IN,42,null());
  688.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  689.  
  690.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,15*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Kund/Lief   :",PLACETEXT_LEFT,43,null());
  691.     PreGad4    = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,6,TAG_DONE,0);
  692.  
  693.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,35*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null());
  694.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  695.  
  696.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,25*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null());
  697.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  698.  
  699.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,45*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null());
  700.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  701.  
  702.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,55*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null());
  703.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  704.  
  705.     call SETNEWGADGET(newgadx4,scrvinfo,scrfont,65*Font_X,28*Font_Y,12*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null());
  706.     PreGad4    = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0);
  707. RETURN;
  708.  
  709. make_labels2:
  710.     ltxt2.1    = "Kunden";
  711.     ltxt2.2    = "Firma";
  712.     mlabels2    = MAKEPOINTER(0,0,12,MEMF_CLEAR);
  713.     DO x = 1 to 2;
  714.         lbuf2    = MAKEPOINTER(mlabels2,0,length(ltxt2.x)+2,MEMF_CLEAR);
  715.         CALL export(lbuf2,ltxt2.x);
  716.         CALL SETVALUE(mlabels2,(x-1)*4,4,'p',lbuf2);
  717.     END;
  718. RETURN mlabels2;
  719.  
  720. DefineGads5:
  721.     GPoint5    = ALLOCVEC(4,MEMF_CLEAR);
  722.     conxgad5    = CREATECONTEXT(GPoint5);
  723.     PreGad5    = conxgad5;
  724.  
  725.     newgadx5    = MAKENEWGADGET(scrvinfo,scrfont,14*Font_X,Font_Y,62*Font_X,1.5*Font_Y,"Bezeichnung:",PLACETEXT_LEFT,10,null());
  726.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0);
  727.  
  728.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,3*Font_Y,22*Font_X,1.5*Font_Y,"Preis      :",PLACETEXT_LEFT,11,null());
  729.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0);
  730.  
  731.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,59*Font_X,3*Font_Y,17*Font_X,1.5*Font_Y,"Buchkonto  :",PLACETEXT_LEFT,12,null());
  732.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0);
  733.  
  734.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,5*Font_Y,4*Font_X,1.5*Font_Y,"MWSt Kennz.:",PLACETEXT_LEFT,13,null());
  735.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,1,TAG_DONE,0);
  736.  
  737.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,8*Font_Y,37*Font_X,1.5*Font_Y,"Suche     :",PLACETEXT_LEFT,41,null());
  738.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0);
  739.  
  740.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Artikel   :",PLACETEXT_LEFT,43,null());
  741.     PreGad5    = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,6,u,TAG_DONE,0);
  742.  
  743.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,34*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null());
  744.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  745.  
  746.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,24*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null());
  747.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  748.  
  749.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,44*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null());
  750.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  751.  
  752.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,54*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null());
  753.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  754.  
  755.     call SETNEWGADGET(newgadx5,scrvinfo,scrfont,64*Font_X,10*Font_Y,14*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null());
  756.     PreGad5    = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0);
  757. RETURN;
  758.  
  759. DefineGads6:
  760.     GPoint6    = ALLOCVEC(4,MEMF_CLEAR);
  761.     conxgad6    = CREATECONTEXT(GPoint6);
  762.     PreGad6    = conxgad6;
  763.     mylabels    = make_labels();
  764.  
  765.     newgadx6    = MAKENEWGADGET(scrvinfo,scrfont,9*Font_X,Font_Y,12*Font_X,1.5*Font_Y,"MWSt.1:",PLACETEXT_LEFT,10,null());
  766.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.1,TAG_DONE,0);
  767.  
  768.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,3*Font_Y,12*Font_X,1.5*Font_Y,"MWSt.2:",PLACETEXT_LEFT,11,null());
  769.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.2,TAG_DONE,0);
  770.  
  771.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,1*Font_X,7*Font_Y,6*Font_X,1.5*Font_Y,"Wähle",PLACETEXT_IN,12,null());
  772.     PreGad6    = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0);
  773.  
  774.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,7.5*Font_X,7*Font_Y,13.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,13,null());
  775.     PreGad6    = CREATEGADGET(TEXT_KIND,PreGad6,newgadx6,GTTX_BORDER,1,TAG_DONE,0);
  776.  
  777.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,9*Font_Y,12*Font_X,1.5*Font_Y,"Port:  ",PLACETEXT_LEFT,14,null());
  778.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,Druckport,TAG_DONE,0);
  779.  
  780.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,11*Font_Y,12*Font_X,1.5*Font_Y,"Rand_X:",PLACETEXT_LEFT,15,null());
  781.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_XAbst,TAG_DONE,0);
  782.  
  783.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,13*Font_Y,12*Font_X,1.5*Font_Y,"Rand_Y:",PLACETEXT_LEFT,16,null());
  784.     PreGad6    = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_YAbst,TAG_DONE,0);
  785.  
  786.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,3*Font_X,15*Font_Y,12*Font_X,1.5*Font_Y,"Durchschlag",PLACETEXT_RIGHT,17,null());
  787.     IF D_DURCH = "N" THEN
  788.         PreGad6    = CREATEGADGET(CHECKBOX_KIND,PreGad6,newgadx6,GTCB_Checked,0,TAG_DONE,0);
  789.     ELSE
  790.         PreGad6    = CREATEGADGET(CHECKBOX_KIND,PreGad6,newgadx6,GTCB_Checked,1,TAG_DONE,0);
  791.  
  792.     call SETNEWGADGET(newgadx6,scrvinfo,scrfont,5*Font_X,17*Font_Y,12*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,18,null());
  793.     PreGad6    = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0);
  794. RETURN;
  795.  
  796. UP_Adressen:
  797.     IF DefGads4 = 0 THEN
  798.         DO;
  799.             call DefineGads4;
  800.             DefGads4 = 1;
  801.         END;
  802.     w4        = OPENWINDOW(portname,(Screen_X-Win_X4)/2,(Screen_Y-Win_Y4)/2,Win_X4,Win_Y4,0,1,winidcmp,winflags,wintitle4,scr,0,null(),null(),conxgad4);
  803.     rpw4    = GETWINDOWRASTPORT(w4);
  804.     CALL DRAWBEVELBOX(rpw4,0.25*Font_X,0.5*Font_Y,78.5*Font_X,24.5*Font_Y,scrvinfo,TAG_DONE,0);
  805.     CALL DRAWBEVELBOX(rpw4,0.25*Font_X,25.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  806.     call GT_REFRESHWINDOW(w4,null());
  807.     ZW_Suchen    = "";
  808.     IF ZW_KundenNr > K_max | ZW_KundenNr < 1 THEN
  809.         ZW_KundenNr = K_max;
  810.     IF Druckart    = ltxt2.2 THEN
  811.         CALL UP_Firma_alles;
  812.     ELSE
  813.         DO;
  814.             Druckart        = ltxt2.1;
  815.             CALL UP_Kunden_alles;
  816.         END;
  817.     CALL UP_ReErst_fuellen;
  818.     extime4    = 0;
  819.     apen        = 1;
  820.     DO WHILE extime4 = 0;
  821.         x    = waitpkt(portname);
  822.         DO FOREVER;
  823.             msg4        = getpkt(portname);
  824.             IF msg4    = '0000 0000'x THEN LEAVE;
  825.             msgclass4= getarg(msg4,0);
  826.             msgcode4    = getarg(msg4,1);
  827.             msgid4    = getarg(msg4,9);
  828.             x            = reply(msg4,0);
  829.             x            = Auswertung4();
  830.         END;
  831.     END;
  832.     CALL CLOSEWINDOW(w4);
  833. RETURN;
  834.  
  835. UP_Artikel:
  836.     IF DefGads5 = 0 THEN
  837.         DO;
  838.             call DefineGads5;
  839.             DefGads5 = 1;
  840.         END;
  841.     w5        = OPENWINDOW(portname,(Screen_X-Win_X5)/2,(Screen_Y-Win_Y5)/2,Win_X5,Win_Y5,0,1,winidcmp,winflags,wintitle5,scr,0,null(),null(),conxgad5);
  842.     rpw5    = GETWINDOWRASTPORT(w5);
  843.     CALL DRAWBEVELBOX(rpw5,0.25*Font_X,0.5*Font_Y,78.5*Font_X,6.5*Font_Y,scrvinfo,TAG_DONE,0);
  844.     CALL DRAWBEVELBOX(rpw5,0.25*Font_X,7.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  845.     CALL GT_REFRESHWINDOW(w5,null());
  846.     ZW_Suchen = "";
  847.     IF ZW_ArtikelNr > A_max | ZW_ArtikelNr < 1 THEN
  848.         ZW_ArtikelNr = A_max;
  849.     CALL UP_Artikel_alles;
  850.     CALL UP_ArtErst_fuellen;
  851.     extime5    = 0;
  852.     apen        = 1;
  853.     DO WHILE extime5 = 0;
  854.         x    = waitpkt(portname);
  855.         DO FOREVER;
  856.             msg5        = getpkt(portname);
  857.             IF msg5    = '0000 0000'x THEN LEAVE;
  858.             msgclass5= getarg(msg5,0);
  859.             msgcode5    = getarg(msg5,1);
  860.             msgid5    = getarg(msg5,9);
  861.             x            = reply(msg5,0);
  862.             x            = Auswertung5();
  863.         END;
  864.     END;
  865.     CALL CLOSEWINDOW(w5);
  866. RETURN;
  867.  
  868. UP_Rechnung:
  869.     IF DefGads2 = 0 THEN
  870.         DO;
  871.             call DefineGads2;
  872.             DefGads2 = 1;
  873.         END;
  874.     w2        = OPENWINDOW(portname,(Screen_X-Win_X2)/2,(Screen_Y-Win_Y2)/2,Win_X2,Win_Y2,0,1,winidcmp,winflags,wintitle2,scr,0,null(),null(),conxgad2);
  875.     rpw2    = GETWINDOWRASTPORT(w2);
  876.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,0.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0);
  877.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,5.25*Font_Y,78.5*Font_X,((1.7*I_Max)+2.75)*Font_Y,scrvinfo,TAG_DONE,0);
  878.     CALL DRAWBEVELBOX(rpw2,0.25*Font_X,((1.7*I_Max)+8.5)*Font_Y,78.5*Font_X,2.5*Font_Y,scrvinfo,TAG_DONE,0);
  879.     call GT_REFRESHWINDOW(w2,null());
  880.     IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN
  881.         UEB_RechNr = R_max;
  882.     CALL UP_Rechnung_fuellen;
  883.     extime2    = 0;
  884.     apen        = 1;
  885.     DO WHILE extime2 = 0;
  886.         x        = waitpkt(portname);
  887.         DO FOREVER;
  888.             msg2        = getpkt(portname);
  889.             IF msg2    = '0000 0000'x THEN LEAVE;
  890.             msgclass2= getarg(msg2,0);
  891.             msgcode2    = getarg(msg2,1);
  892.             msgid2    = getarg(msg2,9);
  893.             x            = reply(msg2,0);
  894.             x            = Auswertung2();
  895.         END;
  896.     END;
  897.     CALL CLOSEWINDOW(w2);
  898. RETURN;
  899.  
  900. UP_Drucken:
  901.     IF DefGads3 = 0 THEN
  902.         DO;
  903.             call DefineGads3;
  904.             DefGads3 = 1;
  905.         END;
  906.     w3        = OPENWINDOW(portname,(Screen_X-Win_X3)/2,(Screen_Y-Win_Y3)/2,Win_X3,Win_Y3,0,1,winidcmp,winflags,wintitle3,scr,0,null(),null(),conxgad3);
  907.     rpw3    = GETWINDOWRASTPORT(w3);
  908.     CALL DRAWBEVELBOX(rpw3,14.5*Font_X,0.5*Font_Y,29*Font_X,15.5*Font_Y,scrvinfo,TAG_DONE,0);
  909.     call GT_REFRESHWINDOW(w3,null());
  910.     extime3    = 0;
  911.     apen    = 1;
  912.     IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN
  913.         UEB_RechNr = "000001";
  914.     UEB_RechNr = right("000000" || UEB_RechNr,6);
  915.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  916.     DO j = 1 to I_max;
  917.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr
  918.         IF ZW_Art_Nr.j > "" THEN
  919.             DO;
  920.                 x = ZW_Art_Nr.j;
  921.                 ZW_Bez.j            = AR_ArtBez.x;
  922.                 ZW_EPreis.j        = AR_ArtPreis.x;
  923.                 ZW_Art_Anz.j    = RE_Anz.j.UEB_RechNr;
  924.             END;
  925.         ELSE
  926.             DO;
  927.                 ZW_Bez.j            = "";
  928.                 ZW_EPreis.j        = "";
  929.                 ZW_Art_Anz.j    = "";
  930.             END;
  931.     END;
  932.     ZW_Datum = RE_Datum.UEB_RechNr;
  933.     CALL SETSTRGADID(w3,10,UEB_RechNr,null());
  934.     CALL SETSTRGADID(w3,11,ZW_KundenNr,null());
  935.     REFRESHGLIST(conxgad3,w3,null(),-1);
  936.     Druckverz = "ram:";
  937.     IF Druckart ~= ltxt.2 THEN
  938.         Druckart    = ltxt.1
  939.     DO WHILE extime3 = 0;
  940.         x    = waitpkt(portname);
  941.         DO FOREVER;
  942.             msg3        = getpkt(portname);
  943.             IF msg3    = '0000 0000'x THEN LEAVE;
  944.             msgclass3= getarg(msg3,0);
  945.             msgcode3    = getarg(msg3,1);
  946.             msgid3    = getarg(msg3,9);
  947.             x            = reply(msg3,0);
  948.             x            = Auswertung3();
  949.         END;
  950.     END;
  951.     CALL CLOSEWINDOW(w3);
  952. RETURN;
  953.  
  954. UP_Prefs:
  955.     IF DefGads6 = 0 THEN
  956.         DO;
  957.             call DefineGads6;
  958.             DefGads6 = 2;
  959.         END;
  960.     w6        = OPENWINDOW(portname,(Screen_X-Win_X6)/2,(Screen_Y-Win_Y6)/2,Win_X6,Win_Y6,0,1,winidcmp,winflags,wintitle6,scr,0,null(),null(),conxgad6);
  961.     rpw6    = GETWINDOWRASTPORT(w6);
  962.  
  963.     CALL pitext(rpw6,Font_X,5.5*Font_Y,"Anzeigeprogramm:",apen,0,jam2,scrfont);
  964.     CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(AnzeigePGM,12),apen,0,jam2,scrfont);
  965.     call GT_REFRESHWINDOW(w6,null());
  966.     extime6    = 0;
  967.     apen        = 1;
  968.     DO WHILE extime6 = 0;
  969.         x    = waitpkt(portname);
  970.         DO FOREVER;
  971.             msg6        = getpkt(portname);
  972.             IF msg6    = '0000 0000'x THEN LEAVE;
  973.             msgclass6= getarg(msg6,0);
  974.             msgcode6    = getarg(msg6,1);
  975.             msgid6    = getarg(msg6,9);
  976.             x            = reply(msg6,0);
  977.             x            = Auswertung6();
  978.         END;
  979.     END;
  980.     CALL CLOSEWINDOW(w6);
  981. RETURN;
  982.  
  983. UP_Rechnung_fuellen:
  984.     UEB_RechNr = right("000000" || UEB_RechNr,6);
  985.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  986.     CALL UP_Kunden_Fuellen;
  987.     DO j = 1 to I_max;
  988.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr
  989.         IF ZW_Art_Nr.j > "" THEN
  990.             DO;
  991.                 x = ZW_Art_Nr.j;
  992.                 ZW_Bez.j            = AR_ArtBez.x;
  993.                 ZW_EPreis.j        = AR_ArtPreis.x;
  994.                 ZW_Art_Anz.j    = RE_Anz.j.UEB_RechNr;
  995.             END;
  996.         ELSE
  997.             DO;
  998.                 ZW_Bez.j            = "";
  999.                 ZW_EPreis.j        = "";
  1000.                 ZW_Art_Anz.j    = "";
  1001.             END;
  1002.         CALL SETSTRGADID(w2,(j*10+11),ZW_Art_Nr.j,null());
  1003.         CALL SETSTRGADID(w2,(j*10+12),ZW_Art_Anz.j,null());
  1004.         CALL pitext(rpw2,22.5*Font_X,(1.7*j+4.2)*Font_Y,left(ZW_Bez.j,30),apen,0,jam2,scrfont);
  1005.         CALL pitext(rpw2,54.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_EPreis.j,10),apen,0,jam2,scrfont);
  1006.     END;
  1007.     ZW_Datum = RE_Datum.UEB_RechNr;
  1008.     CALL pitext(rpw2,9*Font_X,(1.7*I_max+6.2)*Font_Y,left(ZW_Datum,10),apen,0,jam2,scrfont);
  1009.  
  1010.     CALL SETSTRGADID(w2,160,UEB_RechNr,null());
  1011.     CALL UP_B_Berechnung;
  1012.     REFRESHGLIST(conxgad2,w2,null(),-1);
  1013. RETURN;
  1014.  
  1015. UP_Kunden_Fuellen:
  1016.     IF ZW_KundenNr > 0 THEN
  1017.         DO;
  1018.             ZW_Kunden_VorName    = KD_VorName.ZW_KundenNr;
  1019.             ZW_Kunden_Name        = KD_Name.ZW_KundenNr;
  1020.             ZW_PLZ                = KD_PLZ.ZW_KundenNr;
  1021.             ZW_Ort                = KD_Ort.ZW_KundenNr;
  1022.             ZW_Strasse            = KD_Strasse.ZW_KundenNr;
  1023.         END;
  1024.     ELSE
  1025.         DO;
  1026.             ZW_KundenNr            = "";
  1027.             ZW_Kunden_VorName    = "";
  1028.             ZW_Kunden_Name        = "";
  1029.             ZW_PLZ                = "";
  1030.             ZW_Ort                = "";
  1031.             ZW_Strasse            = "";
  1032.         END;
  1033.     CALL SETSTRGADID(w2,11,ZW_KundenNr,null());
  1034.     CALL SETSTRGADID(w2,12,ZW_Kunden_VorName,null());
  1035.     CALL SETSTRGADID(w2,13,ZW_Kunden_Name,null());
  1036.     CALL pitext(rpw2,7.5*Font_X,3.2*Font_Y,LEFT(ZW_PLZ,5),apen,0,jam2,scrfont);
  1037.     CALL pitext(rpw2,21.5*Font_X,3.2*Font_Y,LEFT(ZW_Ort,22),apen,0,jam2,scrfont);
  1038.     CALL pitext(rpw2,54.5*Font_X,3.2*Font_Y,LEFT(ZW_Strasse,22),apen,0,jam2,scrfont);
  1039. RETURN;
  1040.  
  1041. UP_B_Berechnung:
  1042.     ZW_MWSt = 0;
  1043.     ZW_Endsumme = 0;
  1044.     ZW_Rab = 0;
  1045.     ZW_KundenNr = GETSTRGAD(w2,(11),null());
  1046.     ZW_Rabatt = KD_Rabatt.ZW_KundenNr;
  1047.     IF DATATYPE(ZW_Rabatt,'w') THEN
  1048.         ZW_Rabatt = ZW_Rabatt / 100;
  1049.     ELSE
  1050.         ZW_Rabatt = 0;
  1051.     DO j = 1 to I_Max;
  1052.         ZW_Art_Nr = GETSTRGAD(w2,(11+(10*j)),null());
  1053.         ZW_Menge  = GETSTRGAD(w2,(12+(10*j)),null());
  1054.         IF ZW_Art_Nr > 0 & ZW_Menge > 0 THEN
  1055.             DO;
  1056.                 ZW_Summe.j  = (ZW_EPreis.j * ZW_Menge) + 0.005;
  1057.                 IF ZW_Summe.j < 0 THEN
  1058.                     ZW_Summe.j  = ZW_Summe.j - 0.01;
  1059.                 ZW_Summe.j    = trunc(ZW_Summe.j,2);
  1060.                 ZW_Rab        = ZW_Rab + (ZW_Summe.j * ZW_Rabatt);
  1061.                 ZW_Summe.j    = right(ZW_Summe.j,10);
  1062.                 ZW_Endsumme    = ZW_Endsumme + ZW_Summe.j;
  1063.                 i = AR_ArtMWSt.ZW_Art_Nr;
  1064.                 ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.i);
  1065.             END;
  1066.         ELSE
  1067.             ZW_Summe.j = "";
  1068.         CALL pitext(rpw2,66.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_Summe.j,10),apen,0,jam2,scrfont);
  1069.     END;
  1070.     ZW_Endsumme    = trunc(ZW_Endsumme - ZW_Rab + 0.005,2);
  1071.     ZW_Rab        = trunc(ZW_Rab + 0.005,2);
  1072.     ZW_MWSt        = trunc(ZW_MWSt + 0.005,2);
  1073.     CALL pitext(rpw2,66.5*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Endsumme,10),apen,0,jam2,scrfont);
  1074.     CALL pitext(rpw2,29.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Rab,9),apen,0,jam2,scrfont);
  1075.     CALL pitext(rpw2,46.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_MWSt,9),apen,0,jam2,scrfont);
  1076. RETURN;
  1077.  
  1078. Auswertung2:
  1079.     SELECT
  1080.         WHEN msgcode2 = 75 | msgcode2 = 107 THEN
  1081.             ACTIVATEGADID(11,w2,null());
  1082.         WHEN msgcode2 = 86 | msgcode2 = 118 THEN
  1083.             ACTIVATEGADID(12,w2,null());
  1084.         WHEN msgcode2 = 78 | msgcode2 = 110 THEN
  1085.             ACTIVATEGADID(13,w2,null());
  1086.         WHEN msgcode2 = 82 | msgcode2 = 114 THEN
  1087.             ACTIVATEGADID(160,w2,null());
  1088.         WHEN msgid2 = 10 | msgcode2 = 76 | msgcode2 = 108 THEN
  1089.             DO;
  1090.                 CALL UP_Adressen;
  1091.                 IF ZW_KundenNr = K_max THEN
  1092.                     ZW_KundenNr = K_max - 1;
  1093.                 CALL UP_Kunden_Fuellen;
  1094.                 CALL UP_B_Berechnung;
  1095.                 REFRESHGLIST(conxgad2,w2,null(),-1);
  1096.             END;
  1097.         WHEN msgid2 = 11 THEN
  1098.             DO;
  1099.                 Test = GETSTRGAD(w2,msgid2,null());
  1100.                 IF Test ~= ZW_KundenNr THEN
  1101.                     DO;
  1102.                         ZW_KundenNr = TEST;
  1103.                         IF DATATYPE(ZW_KundenNr,'w') THEN
  1104.                             DO;
  1105.                                 IF ZW_KundenNr = K_max THEN
  1106.                                     ZW_KundenNr = K_max - 1;
  1107.                                 ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6);
  1108.                                 ACTIVATEGADID(21,w2,null());
  1109.                             END;
  1110.                         ELSE
  1111.                             DO;
  1112.                                 rtezrequest("Kundennummer nicht numerisch!",,,ReqCent);
  1113.                                 ZW_KundenNr = "000001";
  1114.                                 ACTIVATEGADID(11,w2,null());
  1115.                             END;
  1116.                         CALL UP_Kunden_Fuellen;
  1117.                         CALL UP_B_Berechnung;
  1118.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1119.                     END;
  1120.             END;
  1121.         WHEN msgid2 = 12 THEN
  1122.             DO;
  1123.                 Test = GETSTRGAD(w2,msgid2,null());
  1124.                 IF Test ~= ZW_Kunden_VorName THEN
  1125.                     DO;
  1126.                         ZW_Kunden_VorName = Test;
  1127.                         DO I = 1 to K_max;
  1128.                             I = RIGHT("000000" || I,6);
  1129.                             IF POS(UPPER(ZW_Kunden_VorName),UPPER(KD_VorName.I)) THEN
  1130.                                 DO;
  1131.                                     ZW_KundenNr = I;
  1132.                                     I = K_max + 5;
  1133.                                     ACTIVATEGADID(21,w2,null());
  1134.                                 END;
  1135.                         END;
  1136.                         IF I < (K_max + 5) THEN
  1137.                             DO;
  1138.                                 rtezrequest("Kein Kunde mit diesem Vornamen vorhanden!",,,ReqCent);
  1139.                                 ZW_KundenNr = GETSTRGAD(w2,11,null());
  1140.                                 IF ZW_KundenNr = "" THEN
  1141.                                     ZW_KundenNr = "000001";
  1142.                                 ACTIVATEGADID(12,w2,null());
  1143.                             END;
  1144.                         CALL UP_Kunden_Fuellen;
  1145.                         CALL UP_B_Berechnung;
  1146.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1147.                     END;
  1148.             END;
  1149.         WHEN msgid2 = 13 THEN
  1150.             DO;
  1151.                 Test = GETSTRGAD(w2,13,null());
  1152.                 IF Test ~= ZW_Kunden_Name THEN
  1153.                     DO;
  1154.                         ZW_Kunden_Name = Test;
  1155.                         DO I = 1 to K_max;
  1156.                             I = RIGHT("000000" || I,6);
  1157.                             IF POS(UPPER(ZW_Kunden_Name),UPPER(KD_Name.I)) THEN
  1158.                                 DO;
  1159.                                     ZW_KundenNr = I;
  1160.                                     ACTIVATEGADID(21,w2,null());
  1161.                                     I = K_max + 5;
  1162.                                 END;
  1163.                         END;
  1164.                         IF I < (K_max + 5) THEN
  1165.                             DO;
  1166.                                 rtezrequest("Kein Kunde mit diesem Familiennamen vorhanden!",,,ReqCent);
  1167.                                 ZW_KundenNr = GETSTRGAD(w2,11,null());
  1168.                                 IF ZW_KundenNr = "" THEN
  1169.                                     ZW_KundenNr = "000001";
  1170.                                 ACTIVATEGADID(13,w2,null());
  1171.                             END;
  1172.                         CALL UP_Kunden_Fuellen;
  1173.                         CALL UP_B_Berechnung;
  1174.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1175.                     END;
  1176.             END;
  1177.         WHEN msgid2 = 20 | msgid2 = 30 | msgid2 = 40 | msgid2 = 50 | msgid2 = 60 |,
  1178.             msgid2 = 70 | msgid2 = 80 | msgid2 = 90 | msgid2 =100 | msgid2 =110 |,
  1179.             msgid2 =120 | msgid2 =130 | msgid2 =140 THEN
  1180.             DO;
  1181.                 CALL UP_Artikel;
  1182.                 i = (msgid2 - 10) / 10;
  1183.                 ZW_Art_Nr.i    = ZW_ArtikelNr;
  1184.                 IF ZW_Art_Nr.i = A_max THEN
  1185.                     ZW_Art_Nr.i = "000000" ||(A_max - 1);
  1186.                 ZW_Art_Nr.i    = right(ZW_Art_Nr.i,6);
  1187.                 Test            = ZW_Art_Nr.i;
  1188.                 ZW_EPreis.i    = RIGHT(AR_ArtPreis.Test,9);
  1189.                 ZW_Bez.i        = AR_ArtBez.Test;
  1190.                 CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Nr.i,null());
  1191.                 CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont);
  1192.                 CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont);
  1193.                 CALL UP_B_Berechnung;
  1194.                 ACTIVATEGADID(msgid2+2,w2,null());
  1195.                 REFRESHGLIST(conxgad2,w2,null(),-1);
  1196.             END;
  1197.         WHEN msgid2 = 21 | msgid2 = 31 | msgid2 = 41 | msgid2 = 51 | msgid2 = 61 |,
  1198.             msgid2 = 71 | msgid2 = 81 | msgid2 = 91 | msgid2 =101 | msgid2 =111 |,
  1199.             msgid2 =121 | msgid2 =131 | msgid2 =141 THEN
  1200.             DO;
  1201.                 i = (msgid2 - 11) / 10;
  1202.                 Test = GETSTRGAD(w2,msgid2,null());
  1203.                 IF Test ~= ZW_Art_Nr.i THEN
  1204.                     DO;
  1205.                         ZW_Art_Nr.i = Test
  1206.                         IF ZW_Art_Nr.i = "" THEN
  1207.                             DO;
  1208.                                 ZW_Art_Anz.i = "";
  1209.                                 CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Anz.i,null());
  1210.                                 ZW_EPreis.i    = "";
  1211.                                 ZW_Bez.i        = "";
  1212.                             END;
  1213.                         ELSE
  1214.                             DO;
  1215.                                 IF DATATYPE(ZW_Art_Nr.i,'w') THEN
  1216.                                     DO;
  1217.                                         IF ZW_Art_Nr.i > (A_max - 1) THEN
  1218.                                             ZW_Art_Nr.i = A_max - 1;
  1219.                                         ZW_Art_Nr.i = RIGHT("000000" || ZW_Art_Nr.i,6);
  1220.                                     END;
  1221.                                 ELSE
  1222.                                     DO;
  1223.                                         rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent);
  1224.                                         ZW_Art_Nr.i = "000001";
  1225.                                         ACTIVATEGADID(msgid2,w2,null());
  1226.                                     END;
  1227.                                 TEST = ZW_Art_Nr.i;
  1228.                                 ZW_EPreis.i    = AR_ArtPreis.Test;
  1229.                                 ZW_Bez.i        = AR_ArtBez.Test;
  1230.                             END;
  1231.                         CALL SETSTRGADID(w2,msgid2,ZW_Art_Nr.i,null());
  1232.                         CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont);
  1233.                         CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont);
  1234.                         CALL UP_B_Berechnung;
  1235.                         REFRESHGLIST(conxgad2,w2,null(),-1);
  1236.                     END;
  1237.                 END;
  1238.             WHEN msgid2 = 22 | msgid2 = 32 | msgid2 = 42 | msgid2 = 52 | msgid2 = 62 |,
  1239.                 msgid2 = 72 | msgid2 = 82 | msgid2 = 92 | msgid2 =102 | msgid2 =112 |,
  1240.                 msgid2 =122 | msgid2 =132 | msgid2 =142 THEN
  1241.                 DO;
  1242.                     i = (msgid2 - 12) / 10;
  1243.                     Test = GETSTRGAD(w2,msgid2,null());
  1244.                     IF Test ~= ZW_Art_Anz.i THEN
  1245.                         DO;
  1246.                             ZW_Art_Anz.i = Test
  1247.                             IF ~DATATYPE(ZW_Art_Anz.i,'n') THEN
  1248.                                 DO;
  1249.                                     rtezrequest("Artikelanzahl nicht numerisch, bitte prüfen!",,,ReqCent);
  1250.                                     ZW_Art_Anz.i = 1;
  1251.                                     ACTIVATEGADID(msgid2,w2,null());
  1252.                                 END;
  1253.                             CALL SETSTRGADID(w2,msgid2,ZW_Art_Anz.i,null());
  1254.                             IF ZW_EPreis.i > "" THEN
  1255.                                 CALL UP_B_Berechnung;
  1256.                             REFRESHGLIST(conxgad2,w2,null(),-1);
  1257.                         END;
  1258.                 END;
  1259.             WHEN msgid2 = 160 THEN
  1260.                 DO;
  1261.                     Test = GETSTRGAD(w2,msgid2,null());
  1262.                     IF Test ~= UEB_RechNr THEN
  1263.                         DO;
  1264.                             CALL UP_Rechnung_OK;
  1265.                             UEB_RechNr = right("000000" || Test,6);
  1266.                             IF UEB_RechNr > R_max THEN
  1267.                                 UEB_RechNr = R_max;
  1268.                             ELSE IF UEB_RechNr < 1 THEN
  1269.                                 UEB_RechNr = "000001";
  1270.                             CALL UP_Rechnung_fuellen;
  1271.                         END;
  1272.                 END;
  1273.             WHEN msgid2 = 161 | msgcode2 = 62 THEN
  1274.                 DO;
  1275.                     Test = UEB_RechNr + 1;
  1276.                     CALL UP_Rechnung_OK;
  1277.                     IF UEB_RechNr < R_max THEN
  1278.                         DO;
  1279.                             UEB_RechNr = right("000000" || Test,6);
  1280.                             CALL UP_Rechnung_fuellen;
  1281.                         END;
  1282.                 END;
  1283.             WHEN msgid2 = 162 | msgcode2 = 60 THEN
  1284.                 DO;
  1285.                     Test = UEB_RechNr - 1;
  1286.                     CALL UP_Rechnung_OK;
  1287.                     IF UEB_RechNr > 0 THEN
  1288.                         DO;
  1289.                             UEB_RechNr = right("000000" || Test,6);
  1290.                             CALL UP_Rechnung_fuellen;
  1291.                         END;
  1292.                 END;
  1293.             WHEN msgid2 = 163 | msgclass2 = CLOSEWINDOW | msgcode2 = 69 | msgcode2 = 101 | msgcode2 = 27  THEN
  1294.                 DO;
  1295.                     CALL UP_Rechnung_OK;
  1296.                     extime2 = 1;
  1297.                 END;
  1298.             WHEN msgid2 = 164 | msgcode2 = 68 | msgcode2 = 100 THEN
  1299.                 DO;
  1300.                     CALL UP_Rechnung_OK;
  1301.                     CALL UP_Drucken;
  1302.                     ZW_KundenNr    = right("000000" || GETSTRGAD(w2,11,null()),6);
  1303.                     UEB_RechNr    = right("000000" || GETSTRGAD(w2,160,null()),6);
  1304.                 END;
  1305.             WHEN msgid2 = 165 THEN
  1306.                 CALL UP_Rechnung_Fuellen;
  1307.             OTHERWISE
  1308.                 NOP;
  1309.         END;
  1310. RETURN 1;
  1311.  
  1312. Auswertung3:
  1313.     SELECT
  1314.         WHEN msgcode3 = 82 | msgcode3 = 114 THEN
  1315.             ACTIVATEGADID(10,w3,null());
  1316.         WHEN msgcode3 = 75 | msgcode3 = 107 THEN
  1317.             ACTIVATEGADID(11,w3,null());
  1318.         WHEN msgid3 = 10 THEN /* Rechnungsnummer wurde eingegeben/geändert */
  1319.             DO;
  1320.                 Test = GETSTRGAD(w3,10,null());
  1321.                 IF Test ~= UEB_RechNr THEN
  1322.                     DO;
  1323.                         UEB_RechNr = TEST;
  1324.                         IF DATATYPE(UEB_RechNr,'w') THEN
  1325.                             DO;
  1326.                                 IF UEB_RechNr > (R_max - 1) THEN
  1327.                                     UEB_RechNr = R_max - 1;
  1328.                                 UEB_RechNr = RIGHT("000000" || UEB_RechNr,6);
  1329.                             END;
  1330.                         ELSE
  1331.                             DO;
  1332.                                 rtezrequest("Rechnungsnummer nicht numerisch!",,,ReqCent);
  1333.                                 ACTIVATEGADID(10,w3,null());
  1334.                                 UEB_RechNr = "000001";
  1335.                             END;
  1336.                         CALL SETSTRGADID(w3,10,UEB_RechNr,null());
  1337.                         REFRESHGLIST(conxgad3,w3,null(),-1);
  1338.                     END;
  1339.             END;
  1340.         WHEN msgid3 = 11 THEN /* Kundennummer wurde eingegeben/geändert */
  1341.             DO;
  1342.                 Test = GETSTRGAD(w3,11,null());
  1343.                 IF Test ~= ZW_KundenNr THEN
  1344.                     DO;
  1345.                         ZW_KundenNr = TEST;
  1346.                         IF DATATYPE(ZW_KundenNr,'w') THEN
  1347.                             DO;
  1348.                                 IF ZW_KundenNr > (K_max - 1) THEN
  1349.                                     ZW_KundenNr = K_max - 1;
  1350.                                 ZW_KundenNr = RIGHT(("000000" || ZW_KundenNr),6);
  1351.                             END;
  1352.                         ELSE
  1353.                             DO;
  1354.                                 rtezrequest("Kundennummer nicht numerisch!",,,ReqCent);
  1355.                                 ACTIVATEGADID(11,w3,null());
  1356.                                 ZW_KundenNr = "000001";
  1357.                             END;
  1358.                         CALL SETSTRGADID(w3,11,ZW_KundenNr,null());
  1359.                         REFRESHGLIST(conxgad3,w3,null(),-1);
  1360.                     END;
  1361.             END;
  1362.         WHEN msgid3 = 12 THEN
  1363.             Druckart = GETVALUE(mlabels,msgcode3*4,4,'s');
  1364.         WHEN msgid3 = 13 | msgcode3 = 80 | msgcode3 = 112 THEN
  1365.             DO;
  1366.                 address COMMAND 'Printer >NIL:';
  1367.                 prefs = allocmem(232);
  1368.                 x = getprefs(prefs,232);
  1369.                 B_laenge = GETVALUE(prefs,178,2,'n');
  1370.                 call freemem(prefs,232);
  1371.             END;
  1372.         WHEN msgid3 = 14 | msgcode3 = 86 | msgcode3 = 118 THEN
  1373.             DO;
  1374.                 x = rtfilerequest("ram:",,"Wählen Sie das Druckverzeichnis",,"rtfi_flags=freqf_nofiles" ReqCent);
  1375.                 IF rtresult THEN;
  1376.                     Druckverz = x;
  1377.             END;
  1378.         WHEN msgid3 = 15 | msgcode3 = 67 | msgcode3 = 99 THEN
  1379.             DO;
  1380.                 Druckfile = "t:Druck"
  1381.                 IF Druckart = ltxt.1 THEN
  1382.                     Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent);
  1383.                 ELSE IF Druckart = ltxt.2 then
  1384.                     DO;
  1385.                         Druckfile = Druckverz || "Rechnung." || UEB_RechNr;
  1386.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1387.                     END;
  1388.                 ELSE
  1389.                     Ergebnis = 1;
  1390.                 IF Ergebnis = 1 then
  1391.                     DO;
  1392.                         CALL UP_R_Berechnung;
  1393.                         Z.1    = D_Rueck
  1394.                         IF D_YAbst < 2 THEN
  1395.                             DO I = D_YAbst TO 2;
  1396.                                 Z.1 = Z.1 || LF;
  1397.                             END;
  1398.                         X = 7-D_XAbst;
  1399.                         IF X < 0 THEN
  1400.                             X = 0;
  1401.                         Z.1    = Z.1 || Copies(" ",X) left(FI_Anrede,55) || right(datum,10);
  1402.                         Z.2    = Copies(" ",X) FI_VorName FI_Name;
  1403.                         Z.3    = Copies(" ",X) FI_Strasse LF;
  1404.                         Z.4    = Copies(" ",X) FI_PLZ FI_Ort LF LF LF LF;
  1405.                         Z.5    = Copies(" ",X) D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF;
  1406.                         Z.6    = Copies(" ",X) KD_Anrede.ZW_KundenNr;
  1407.                         Z.7    = Copies(" ",X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1408.                         Z.8    = Copies(" ",X) KD_Strasse.ZW_KundenNr LF;
  1409.                         Z.9    = Copies(" ",X) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr
  1410.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1411.                             Z.9 = Z.9 || "   (" || KD_Land.ZW_KundenNr || ")";
  1412.                         Z.9  = Z.9 || LF || LF || LF;
  1413.                         Z.10 = Copies(" ",X) "Kundennr:" ZW_KundenNr;
  1414.                         Z.11 = Copies(" ",X) "Rechnung:" UEB_RechNr;
  1415.                         Z.12 = Copies(" ",X) "Datum   :" RE_Datum.UEB_RechNr LF;
  1416.                         Z.13 = Copies(" ",X) "Art.Nr Anzahl" left(" Artikelbezeichnung",33) "Preis:     Summe:";
  1417.                         Z.14 = Copies(" ",X) Copies("-",65);
  1418.                         DO i = 1 to I_max;
  1419.                             j = i + 14;
  1420.                             IF ZW_Art_Nr.i > "" THEN
  1421.                                 Z.j = Copies(" ",X) ZW_Art_Nr.i right(ZW_Menge.i,6) || "  " || left(ZW_ArtBez.i,28) right(ZW_EPreis.i,10) right(ZW_Summe.i,10);
  1422.                             ELSE
  1423.                                 Z.j = "";
  1424.                         END;
  1425.                         IF I_max = 11 THEN
  1426.                             DO;
  1427.                                 Z.26 = "";
  1428.                                 Z.27 = "";
  1429.                             END;
  1430.                         IF ZW_Rab > 0 THEN
  1431.                             DO;
  1432.                                 TEXT = "Abzüglich"  KD_Rabatt.ZW_KundenNr "% Rabatt =";
  1433.                                 Z.28 = Copies(" ",X) left(TEXT,55) right(ZW_Rab,9);
  1434.                             END;
  1435.                         ELSE
  1436.                             Z.28 = "";
  1437.                         Z.29 = Copies(" ",X) Copies("-",65);
  1438.                         Z.30 = Copies(" ",X) left("Gesamt Netto DM:",54) right(ZW_Endsumme-ZW_MWSt,10);
  1439.                         Z.31 = Copies(" ",X) left("zzgl. Mehrwertsteuer" MWSt_Satz.1 "% bzw." MWSt_Satz.2 "%",55) ZW_MWSt;
  1440.                         Z.32 = Copies(" ",X) left("Gesamt Brutto DM:",54) ZW_Endsumme;
  1441.                         Z.33 = Copies(" ",X) Copies("=",65) LF LF;
  1442.                         Z.34 = Copies(" ",X) D_KEin || "Bitte bei allen Bestellungen die Kundennummer angeben" D_KAus LF;
  1443.                         Z.35 = Copies(" ",X) "Bankverbindung:"
  1444.                         Z.36 = Copies(" ",X) FI_BankBez "  BLZ:" FI_BLZ "  Konto:" FI_Konto LF LF;
  1445.                         Z.37 = Copies(" ",X) "Vielen Dank für Ihren Auftrag";
  1446.                         Druckdat = "Rechnung";
  1447.                         OPEN(Druckdat,Druckfile,'write');
  1448.                         DO i = 1 to 37;
  1449.                             WRITELN(Druckdat,Z.i);
  1450.                         END;
  1451.                         CLOSE(Druckdat);
  1452.                         IF Druckart = ltxt.1 THEN
  1453.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport;
  1454.                         ELSE IF Druckart = ltxt.3 THEN
  1455.                             address COMMAND AnzeigePGM "t:Druck";
  1456.                     END;
  1457.             END;
  1458.         WHEN msgid3 = 16 | msgcode3 = 84 | msgcode3 = 116 THEN
  1459.             DO;
  1460.                 Druckfile = "t:Druck"
  1461.                 IF Druckart = ltxt.1 THEN
  1462.                     Ergebnis = rtezrequest("Bitte leere Paketkarte einlegen","Einfach|Nachnahme|Abbruch",,ReqCent);
  1463.                 ELSE IF Druckart = ltxt.2 then
  1464.                     DO;
  1465.                         Druckfile = Druckverz || "Paketkarte." || UEB_RechNr;
  1466.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Einfach|Nachnahme|Abbruch",,ReqCent);
  1467.                     END;
  1468.                 ELSE
  1469.                     Ergebnis = rtezrequest("Druckvorschau","Einfach|Nachnahme|Abbruch",,ReqCent);
  1470.                 IF Ergebnis > 0 then
  1471.                     DO;
  1472.                         CALL UP_R_Berechnung;
  1473.                         Z.1    = D_Rueck
  1474.                         IF D_YAbst < 5 THEN
  1475.                             DO I = D_YAbst TO 5;
  1476.                                 Z.1 = Z.1 || LF;
  1477.                             END;
  1478.                         X = 3-D_XAbst;
  1479.                         IF X < 0 THEN
  1480.                             X = 0;
  1481.                         Z.1 = Z.1 || Copies(" ",X) || FI_VorName FI_Name LF;
  1482.                          Z.2 = Copies(" ",X) || FI_Strasse LF;
  1483.                         Z.3 = Copies(" ",X) || FI_PLZ FI_Ort LF LF;
  1484.                         IF FI_Land = KD_Land.ZW_KundenNr THEN
  1485.                             Z.9 = "";
  1486.                         ELSE
  1487.                             Z.9 = Copies(" ", 28+X) "(" || KD_Land.ZW_KundenNr || ")";
  1488.                         IF Ergebnis = 1 THEN
  1489.                             DO;
  1490.                                 Z.4    = LF LF;
  1491.                                 Z.5    = Copies(" ",26+X) KD_Anrede.ZW_KundenNr LF;
  1492.                                 Z.6    = Copies(" ",26+X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1493.                                 Z.7    = Copies(" ",26+X) KD_Strasse.ZW_KundenNr LF LF LF;
  1494.                                 Z.8    = Copies(" ",26+X) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr LF;
  1495.                             END;
  1496.                         ELSE
  1497.                             DO;
  1498.                                 Z.4    = Copies(" ",X+13) LEFT(ZW_Endsumme,13) LF LF;
  1499.                                 Z.5    = Copies(" ",X+5) LEFT(FI_Konto,19) "  "  KD_Anrede.ZW_KundenNr LF;
  1500.                                 Z.6    = Copies(" ",X+5) LEFT(FI_BankKurz,19) "  " KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1501.                                 Z.7    = Copies(" ",X+14) LEFT(FI_BLZ,10) "  " KD_Strasse.ZW_KundenNr LF LF LF;
  1502.                                 Z.8    = Copies(" ",X+28) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr LF;
  1503.                             END;
  1504.                         Druckdat = "Paketkarte";
  1505.                         OPEN(Druckdat,Druckfile,'write');
  1506.                         DO i = 1 to 9;
  1507.                             WRITELN(Druckdat,Z.i);
  1508.                         END;
  1509.                         CLOSE(Druckdat);
  1510.                         IF Druckart = ltxt.1 THEN
  1511.                             address COMMAND "copy >NIL: t:Druck FF to" Druckport;
  1512.                         ELSE IF Druckart = ltxt.3 THEN
  1513.                             address COMMAND AnzeigePGM "t:Druck";
  1514.                         IF D_Durch = "N" & Druckart = ltxt.1 THEN
  1515.                             DO;
  1516.                                 DO MAX = 1 TO 2;
  1517.                                     Ergebnis = rtezrequest("Bitte oben liegenden Zettel entfernen," || LF || "den Schein dann erneut einlegen.","OK",,ReqCent);
  1518.                                     address COMMAND "copy >NIL: t:Druck FF to" Druckport;
  1519.                                 END;
  1520.                             END;
  1521.                     END;
  1522.             END;
  1523.         WHEN msgid3 = 17 | msgcode3 = 90 | msgcode3 = 122 THEN
  1524.             DO;
  1525.                 Druckfile = "t:Druck"
  1526.                 IF Druckart = ltxt.1 THEN
  1527.                     Ergebnis = rtezrequest("Bitte leeren Zahlschein einlegen","Klein|Groß|Abbruch",,ReqCent);
  1528.                 ELSE IF Druckart = ltxt.2 then
  1529.                     DO;
  1530.                         Druckfile = Druckverz || "Paketkarte." || UEB_RechNr;
  1531.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Klein|Groß|Abbruch",,ReqCent);
  1532.                     END;
  1533.                 ELSE
  1534.                     Ergebnis = rtezrequest("Druckvorschau fromat?","Klein|Groß|Abbruch",,ReqCent);
  1535.                 IF Ergebnis > 0 then
  1536.                     DO;
  1537.                         CALL UP_R_Berechnung;
  1538.                         Z.1    = D_Rueck
  1539.                         IF D_YAbst < 5 THEN
  1540.                             DO I = D_YAbst TO 4;
  1541.                                 Z.1 = Z.1 || LF;
  1542.                             END;
  1543.                         X = 3-D_XAbst;
  1544.                         IF X < 0 THEN
  1545.                             X = 0;
  1546.                         Z.8  = UP_Sperr(left(FI_Name Fi_VorName,26));
  1547.                         Z.1  = Z.1 || Copies(" ",X) || Z.8 || LF;
  1548.                         Z.8  = UP_Sperr(COMPRESS(FI_Konto));
  1549.                         Z.9  = UP_Sperr(COMPRESS(FI_BLZ));
  1550.                         Z.2  = Copies(" ",X) || left(Z.8,10) || CR || Copies(" ",38+X) || Z.9 || LF;
  1551.                         Z.8  = UP_Sperr(left(FI_BankBez,26))
  1552.                         Z.3  = Copies(" ",X) || Z.8 || LF;
  1553.                         i = UP_Sperr(ZW_Endsumme - 3.00);
  1554.                         Z.4  = Copies(" ",X+30) || i || LF;
  1555.                         Z.8  = UP_Sperr("ReNr:" UEB_RechNr);
  1556.                         Z.5  = Copies(" ",X) || Z.8 || LF || LF || LF;
  1557.                         Z.8  = UP_Sperr(left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr || "," KD_Ort.ZW_KundenNr,27));
  1558.                         Z.6  = Copies(" ",X) || Z.8 || LF;
  1559.                         Z.7  = Copies(" ",22+X) || i;
  1560.                         Druckdat = "Zahlschein"
  1561.                         OPEN(Druckdat,Druckfile,'write');
  1562.                         IF Ergebnis = 1 THEN
  1563.                             max = 7;
  1564.                         ELSE
  1565.                             DO;
  1566.                                 max = 15;
  1567.                                 Z.8  = LF || LF || LF || LF || LF || LF || LF || LF || LF || Copies(" ",16+X) || FI_Name FI_VorName;
  1568.                                 Z.9  = Copies(" ",16+X) || FI_Strasse;
  1569.                                 Z.10 = Copies(" ",16+X) || FI_PLZ FI_Ort || LF || LF || LF || LF || LF || LF;
  1570.                                 ZW_Endsumme = right(ZW_Endsumme,9);
  1571.                                 Z.11 = Copies(" ",X-1) || right(left(ZW_Endsumme,6),5) || right(ZW_Endsumme,27) LF;
  1572.                                 Z.12 = Copies(" ",X-1) || left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr,15) Copies(" ",9) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF;
  1573.                                 Z.13 = Copies(" ",X-1) || left(KD_Strasse.ZW_KundenNr,15) Copies(" ",9) KD_Strasse.ZW_KundenNr LF;
  1574.                                 Z.14 = Copies(" ",X-1) || left(KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr,15);
  1575.                                 Z.15 = Copies(" ",24+X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1576.                             END;
  1577.                         Z.max = Z.max;
  1578.                         DO i = 1 to max;
  1579.                             WRITELN(Druckdat,Z.i);
  1580.                         END;
  1581.                         CLOSE(Druckdat);
  1582.                         IF Druckart = ltxt.1 THEN
  1583.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport;
  1584.                         ELSE IF Druckart = ltxt.3 THEN
  1585.                             address COMMAND AnzeigePGM "t:Druck";
  1586.                     END;
  1587.             END;
  1588.         WHEN msgid3 = 18 | msgcode3 = 77 | msgcode3 = 109 THEN
  1589.             DO;
  1590.                 MAdd.01 = 0;
  1591.                 MAdd.02 = 31;
  1592.                 i = right(datum,4);
  1593.                 i = i / 4;
  1594.                 i = lastpos('.',i);
  1595.                 IF i = 0 THEN
  1596.                     MAdd.03 = MAdd.02 + 29;
  1597.                 ELSE
  1598.                     MAdd.03 = MAdd.02 + 28;
  1599.                 MAdd.04 = MAdd.03 + 31;
  1600.                 MAdd.05 = MAdd.04 + 30;
  1601.                 MAdd.06 = MAdd.05 + 31;
  1602.                 MAdd.07 = MAdd.06 + 30;
  1603.                 MAdd.08 = MAdd.07 + 31;
  1604.                 MAdd.09 = MAdd.08 + 31;
  1605.                 MAdd.10 = MAdd.09 + 30;
  1606.                 MAdd.11 = MAdd.10 + 31;
  1607.                 MAdd.12 = MAdd.11 + 30;
  1608.                 Monat    = SUBSTR(RE_Datum.UEB_RechNr,4,2);
  1609.                 Tag    = LEFT(RE_Datum.UEB_RechNr,2);
  1610.                 Jahr    = RIGHT(RE_Datum.UEB_RechNr,4);
  1611.                 Rec    = Tag + MAdd.Monat + (365.2423482188 * Jahr);
  1612.                 Rec    = trunc(Rec)
  1613.                 Nun    = Date(b);
  1614.                 Dif    = Nun - Rec;
  1615.                 CALL UP_R_Berechnung;
  1616.                 Select;
  1617.                     WHEN RE_Mahnung.UEB_RechNr = 1 THEN
  1618.                         DO;
  1619.                             MahnNr = rtezrequest("Es wurde bereits eine Mahnung gedruckt!" LF ||,
  1620.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen.",
  1621.                                                         ,"2.Mahnung|1.Mahnung|Abbruch",,ReqCent);
  1622.                             SELECT;
  1623.                                 WHEN MahnNr = 1 THEN
  1624.                                     MahnNr = 2;
  1625.                                 WHEN MahnNr = 2 THEN
  1626.                                     MahnNr = 1;
  1627.                                 OTHERWISE
  1628.                                     NOP;
  1629.                             END;
  1630.                         END;
  1631.                     WHEN RE_Mahnung.UEB_RechNr = 2 THEN
  1632.                         DO;
  1633.                             MahnNr = rtezrequest("Es wurden bereits zwei Mahnungen gedruckt!" LF ||,
  1634.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen.",
  1635.                                                         ,"3.Mahnung|2.Mahnung|1.Mahnung|Abbruch",,ReqCent);
  1636.                             SELECT;
  1637.                                 WHEN MahnNr = 1 THEN
  1638.                                     MahnNr = 3;
  1639.                                 WHEN MahnNr = 3 THEN
  1640.                                     MahnNr = 1;
  1641.                                 OTHERWISE
  1642.                                     NOP;
  1643.                             END;
  1644.                         END;
  1645.                     WHEN RE_Mahnung.UEB_RechNr = 3 THEN
  1646.                         DO;
  1647.                             MahnNr = rtezrequest("Es wurden bereits drei Mahnungen gedruckt!" LF ||,
  1648.                                                         "Seit Rechnungserstellung sind" Dif "Tage vergangen" LF ||,
  1649.                                                         "Es ist KEINE weiter Mahnung möglich",
  1650.                                                         ,"Abbruch|3.Mahnung|2.Mahnung|1.Mahnung",,ReqCent);
  1651.                             SELECT;
  1652.                                 WHEN MahnNr = 0 THEN
  1653.                                     MahnNr = 1;
  1654.                                 WHEN MahnNr = 1 THEN
  1655.                                     MahnNr = 0;
  1656.                                 WHEN MahnNr = 2 THEN
  1657.                                     MahnNr = 3;
  1658.                                 WHEN MahnNr = 3 THEN
  1659.                                     MahnNr = 2;
  1660.                                 OTHERWISE
  1661.                                     NOP;
  1662.                             END;
  1663.                         END;
  1664.                     OTHERWISE
  1665.                         MahnNr = rtezrequest("Es wurde noch keine Mahnung gedruckt!" LF ||,
  1666.                                                     "Seit Rechnungserstellung sind" Dif "Tage vergangen",
  1667.                                                     ,"1.Mahnung|Abbruch",,ReqCent);
  1668.                 END;
  1669.                 IF MahnNr = 0 THEN
  1670.                     Ergebnis = 0;
  1671.                 ELSE
  1672.                     DO;
  1673.                         Druckfile = "t:Druck"
  1674.                         IF Druckart = ltxt.1 THEN
  1675.                             Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent);
  1676.                         ELSE IF Druckart = ltxt.2 then
  1677.                             DO;
  1678.                                 Druckfile = Druckverz || "Paketkarte." || UEB_RechNr;
  1679.                                 Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1680.                             END;
  1681.                         ELSE
  1682.                             Ergebnis = 1;
  1683.                     END;
  1684.                 IF Ergebnis = 1 then
  1685.                     DO;
  1686.                         IF RE_Mahnung.UEB_RechNr < MahnNr THEN
  1687.                             RE_Mahnung.UEB_RechNr = MahnNr;
  1688.                         CALL UP_R_Berechnung;
  1689.                         Z.1    = D_Rueck
  1690.                         IF D_YAbst < 2 THEN
  1691.                             DO I = D_YAbst TO 2;
  1692.                                 Z.1 = Z.1 || LF;
  1693.                             END;
  1694.                         X = 7-D_XAbst;
  1695.                         IF X < 0 THEN
  1696.                             X = 0;
  1697.                         Z.1  = Z.1 || Copies(" ",X) || left(FI_Anrede,55) || right(datum,10);
  1698.                         Z.2  = Copies(" ",X) || FI_VorName FI_Name;
  1699.                         Z.3  = Copies(" ",X) || FI_Strasse LF;
  1700.                         Z.4  = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF;
  1701.                         Z.5  = Copies(" ",X) || D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF;
  1702.                         Z.6  = Copies(" ",X) || KD_Anrede.ZW_KundenNr;
  1703.                         Z.7  = Copies(" ",X) || KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1704.                         Z.8  = Copies(" ",X) || KD_Strasse.ZW_KundenNr LF;
  1705.                         Z.9  = Copies(" ",X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr
  1706.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1707.                             Z.9 = Z.9 || "   (" || KD_Land.ZW_KundenNr || ")";
  1708.                         Z.9  = Z.9 || LF || LF || LF || LF || LF;
  1709.                         Z.10 = Copies(" ",X) || "Kundennr:" ZW_KundenNr;
  1710.                         Z.11 = Copies(" ",X) || "Betreff Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr || LF || LF || LF;
  1711.                         Z.12 = Copies(" ",X) || KD_BAnr.ZW_KundenNr || LF;
  1712.                         SELECT
  1713.                             WHEN MahnNr = 1 THEN
  1714.                                 DO;
  1715.                                     ZW_SumPMahn = ZW_Endsumme + 1.50;
  1716.                                     Z.13 = Copies(" ",X) || "leider  muß ich  Ihnen mitteilen,  daß Sie meine  Rechnung" UEB_RechNr "vom";
  1717.                                     Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "bisher  noch nicht bezahlt  haben.  Ich möchte Sie deshalb";
  1718.                                     Z.15 = Copies(" ",X) || "bitten, dieses Versäumnis nachzuholen und den ausstehenden Betrag von";
  1719.                                     Z.16 = Copies(" ",X) || right(ZW_Endsumme,9) "DM  +  1.50 DM  Mahngebühr  (Gesamt:" right(ZW_SumPMahn,9) || "DM)  auf mein";
  1720.                                     Z.17 = Copies(" ",X) || "Konto zu überweisen.";
  1721.                                     Z.18 = LF;
  1722.                                 END;
  1723.                             WHEN MahnNr = 2 THEN
  1724.                                 DO;
  1725.                                     ZW_SumPMahn = ZW_Endsumme + 3.00;
  1726.                                     Z.13 = Copies(" ",X) || "leider  muß ich  Ihnen mitteilen,  daß Sie meine  Rechnung" UEB_RechNr "vom";
  1727.                                     Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "trotz nochmaliger Aufforderung  bisher  noch nicht bezahlt";
  1728.                                     Z.15 = Copies(" ",X) || "haben. Ich möchte Sie deshalb nachdrücklich dazu auffordern, Ihr Ver-";
  1729.                                     Z.16 = Copies(" ",X) || "säumnis nachzuholen  und den  ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +";
  1730.                                     Z.17 = Copies(" ",X) || "3.00 DM Mahngebühr  (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!";
  1731.                                     Z.18 = LF;
  1732.                                 END;
  1733.                             WHEN MahnNr = 3 THEN
  1734.                                 DO;
  1735.                                     ZW_SumPMahn = ZW_Endsumme + 4.50;
  1736.                                     Z.13 = Copies(" ",X) || "trotz zweier Mahnungen haben Sie meine Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr;
  1737.                                     Z.14 = Copies(" ",X) || "nicht überwiesen!  Dies ist meine letzte Aufforderung, Ihr Versäumnis";
  1738.                                     Z.15 = Copies(" ",X) || "nachzuholen  und den ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +  4.50 DM";
  1739.                                     Z.16 = Copies(" ",X) || "Mahngebühr (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!";
  1740.                                     Z.17 = Copies(" ",X) || "Wenn Sie meiner  Aufforderung nicht  nachkommen,  behalte ich mir ge-";
  1741.                                     Z.18 = Copies(" ",X) || "richtliche Schritte vor." || LF || LF;
  1742.                                 END;
  1743.                             OTHERWISE
  1744.                                 NOP;
  1745.                         END;
  1746.                         Z.19 = Copies(" ",X) || "Bankverbindung:";
  1747.                         Z.20 = Copies(" ",X) || FI_BankBez "  BLZ:" FI_BLZ "  Konto:" FI_Konto LF;
  1748.                         Z.21 = Copies(" ",X) || "Mit freundlichen Grüßen" || LF || LF || LF;
  1749.                         Z.22 = Copies(" ",X) || FI_VorName FI_Name;
  1750.                         Druckdat = "Mahnung";
  1751.                         OPEN(Druckdat,Druckfile,'write');
  1752.                         DO i = 1 to 22;
  1753.                             WRITELN(Druckdat,Z.i);
  1754.                         END;
  1755.                         CLOSE(Druckdat);
  1756.                         IF Druckart = ltxt.1 THEN
  1757.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport;
  1758.                         ELSE IF Druckart = ltxt.3 THEN
  1759.                             address COMMAND AnzeigePGM "t:Druck";
  1760.                     END;
  1761.             END;
  1762.         WHEN msgid3 = 19 | msgcode3 = 69 | msgcode3 = 101 THEN
  1763.             DO;
  1764.                 Druckfile = "t:Druck"
  1765.                 IF Druckart = ltxt.1 THEN
  1766.                     Ergebnis = rtezrequest("Bitte Etiketten einlegen" LF ||,
  1767.                                                     "Firmen oder Kundenetiketten?",
  1768.                                                     ,"Firma|Kunde|Abbruch",,ReqCent);
  1769.                 ELSE IF Druckart = ltxt.2 then
  1770.                     DO;
  1771.                         Druckfile = Druckverz || "Etiketten." || ZW_KundenNr;
  1772.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||,
  1773.                                                         "Firmen oder Kundenetiketten?",
  1774.                                                         ,"Firma|Kunde|Abbruch",,ReqCent);
  1775.                     END;
  1776.                 ELSE
  1777.                     Ergebnis = rtezrequest("      Druckvorschau:" LF ||,
  1778.                                                     "Firmen oder Kundenetiketten?",
  1779.                                                     ,"Firma|Kunde|Abbruch",,ReqCent);
  1780.                 IF Ergebnis = 1 then
  1781.                     DO;
  1782.                         Z.1 = LF Fi_Anrede;
  1783.                         Z.2 = "" FI_VorName FI_Name;
  1784.                         Z.3 = "" FI_Strasse;
  1785.                         Z.4 = LF FI_PLZ FI_Ort;
  1786.                         Z.5 = LF LF;
  1787.                     END;
  1788.                 IF Ergebnis = 2 then
  1789.                     DO;
  1790.                         Z.1 = LF KD_Anrede.ZW_KundenNr;
  1791.                         Z.2 = "" KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1792.                         Z.3 = "" KD_Strasse.ZW_KundenNr;
  1793.                         Z.4 = LF KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1794.                         IF FI_Land = KD_Land.ZW_KundenNr THEN
  1795.                             Z.5 = LF LF;
  1796.                         ELSE
  1797.                             Z.5 = " (" || KD_Land.ZW_KundenNr || ")" LF LF;
  1798.                     END;
  1799.                 IF Ergebnis > 0 then
  1800.                     DO;
  1801.                         Anzahl = rtgetlong(, , "Wieviel Etiketten wollen Sie drucken:", , ,"rtgl_min = 1 rtgl_max = 999");
  1802.                         Druckdat = "Etikett";
  1803.                         OPEN(Druckdat,Druckfile,'write');
  1804.                         WRITELN(Druckdat,D_Rueck);
  1805.                         DO j = 1 to Anzahl;
  1806.                             DO i = 1 to 5;
  1807.                                 WRITELN(Druckdat,Z.i);
  1808.                             END;
  1809.                         END;
  1810.                         CLOSE(Druckdat);
  1811.                         IF Druckart = ltxt.1 THEN
  1812.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport;
  1813.                         ELSE IF Druckart = ltxt.3 THEN
  1814.                             address COMMAND AnzeigePGM "t:Druck";
  1815.                     END;
  1816.             END;
  1817.         WHEN msgid3 = 20 | msgcode3 = 85 | msgcode3 = 117 THEN
  1818.             DO;
  1819.                 Druckfile = "t:Druck"
  1820.                 IF Druckart = ltxt.1 THEN
  1821.                     Ergebnis = rtezrequest("Bitte Umschlag einlegen." LF ||,
  1822.                                                     "Welches Format wünschen Sie?",
  1823.                                                     ,"C6/B6|DL|Abbruch",,ReqCent);
  1824.                 ELSE IF Druckart = ltxt.2 then
  1825.                     DO;
  1826.                         Druckfile = Druckverz || "Umschläge." || ZW_KundenNr;
  1827.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||,
  1828.                                                         "Welches Format wünschen Sie?",
  1829.                                                         ,"C6/B6|DL|Abbruch",,ReqCent);
  1830.                     END;
  1831.                 ELSE
  1832.                     Ergebnis = rtezrequest("      Druckvorschau" LF ||,
  1833.                                                     "Welches Format wünschen Sie?",
  1834.                                                     ,"C6/B6|DL|Abbruch",,ReqCent);
  1835.                 IF Ergebnis > 0 then
  1836.                     DO;
  1837.                         Z.1    = D_Rueck
  1838.                         IF D_YAbst < 2 THEN
  1839.                             DO I = D_YAbst TO 2;
  1840.                                 Z.1 = Z.1 || LF;
  1841.                             END;
  1842.                         X = 3-D_XAbst;
  1843.                         IF X < 0 THEN
  1844.                             X = 0;
  1845.                         SELECT
  1846.                             WHEN Ergebnis = 1 then
  1847.                                 Breite = 22+X;
  1848.                             WHEN Ergebnis = 2 then
  1849.                                 Breite = 31+X;
  1850.                             OTHERWISE
  1851.                                 NOP;
  1852.                         END;
  1853.                         Z.1 = Z.1 || Copies(" ",X) || Fi_Anrede;
  1854.                         Z.2 = Copies(" ",X) || FI_VorName FI_Name;
  1855.                         Z.3 = Copies(" ",X) || FI_Strasse LF;
  1856.                         Z.4 = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF LF LF;
  1857.                         Z.5 = Copies(" ",Breite) KD_Anrede.ZW_KundenNr ;
  1858.                         Z.6 = Copies(" ",Breite) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr;
  1859.                         Z.7 = Copies(" ",Breite) KD_Strasse.ZW_KundenNr LF;
  1860.                         Z.8 = Copies(" ",Breite) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr;
  1861.                         IF FI_Land ~= KD_Land.ZW_KundenNr THEN
  1862.                             Z.8 = Z.8 "(" || KD_Land.ZW_KundenNr || ")";
  1863.                         Druckdat = "Umschlag";
  1864.                         OPEN(Druckdat,Druckfile,'write');
  1865.                         DO i = 1 to 8;
  1866.                             WRITELN(Druckdat,Z.i);
  1867.                         END;
  1868.                         CLOSE(Druckdat);
  1869.                         IF Druckart = ltxt.1 THEN
  1870.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport;
  1871.                         ELSE IF Druckart = ltxt.3 THEN
  1872.                             address COMMAND AnzeigePGM "t:Druck";
  1873.                     END;
  1874.             END;
  1875.         WHEN msgid3 = 21 | msgcode3 = 76 | msgcode3 = 108 THEN
  1876.             DO;
  1877.                 Druckfile = "t:Druck"
  1878.                 IF Druckart = ltxt.1 THEN
  1879.                     Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1880.                 ELSE IF Druckart = ltxt.2 then
  1881.                     DO;
  1882.                         Druckfile = Druckverz || "Artikelliste";
  1883.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1884.                     END;
  1885.                 ELSE
  1886.                     Ergebnis = 1;
  1887.                 IF Ergebnis > 0 then
  1888.                     DO;
  1889.                         Druckdat = "Artikel"
  1890.                         OPEN(Druckdat,Druckfile,'write');
  1891.                         Z.6 = "ArtNr  Artikelbezeichnung                 Preis MWSt Buchk."
  1892.                         Z.7 = Copies("-",59);
  1893.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1894.                         WRITELN(Druckdat,Z.7);
  1895.                         Zeile = 3;
  1896.                         Z.6 = FF || Z.6;
  1897.                         DO j = 1 to (A_max - 1)
  1898.                             j = right("000000" || j,6);
  1899.                             Z.1 = j left(AR_ArtBez.j,30) right(AR_ArtPreis.j,9) right(Ar_ArtMWSt.j,4) right(AR_ArtBuch.j,6);
  1900.                             Zeile = Zeile + 1;
  1901.                             IF Zeile > B_laenge THEN
  1902.                                 DO;
  1903.                                     WRITELN(Druckdat,Z.6);
  1904.                                     WRITELN(Druckdat,Z.7);
  1905.                                     Zeile = 3;
  1906.                                 END;
  1907.                             WRITELN(Druckdat,Z.1);
  1908.                         END;
  1909.                         Z.1 = LF || "Ende der Auflistung";
  1910.                         WRITELN(Druckdat,Z.1);
  1911.                         CLOSE(Druckdat);
  1912.                         IF Druckart = ltxt.1 THEN
  1913.                             address COMMAND "run copy >NIL: t:Druck FF to" Druckport;
  1914.                         ELSE IF Druckart = ltxt.3 THEN
  1915.                             address COMMAND AnzeigePGM "t:Druck";
  1916.                     END;
  1917.             END;
  1918.         WHEN msgid3 = 22 | msgcode3 = 83 | msgcode3 = 115 THEN
  1919.             DO;
  1920.                 Druckfile = "t:Druck"
  1921.                 IF Druckart = ltxt.1 THEN
  1922.                     Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1923.                 ELSE IF Druckart = ltxt.2 then
  1924.                     DO;
  1925.                         Druckfile = Druckverz || "Kundenliste";
  1926.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1927.                     END;
  1928.                 ELSE
  1929.                     Ergebnis = 1;
  1930.                 IF Ergebnis > 0 then
  1931.                     DO;
  1932.                         Druckdat = "Kunden"
  1933.                         OPEN(Druckdat,Druckfile,'write');
  1934.                         Z.6 = "Kunde  Vorname    Name       Straße               PLZ   Ort"
  1935.                         Z.7 = Copies("-",71);
  1936.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1937.                         WRITELN(Druckdat,Z.7);
  1938.                         Zeile = 3;
  1939.                         Z.6 = FF || Z.6;
  1940.                         DO j = 1 to (K_max - 1);
  1941.                             j = "000000" || j;
  1942.                             j = right(j,6);
  1943.                             Z.1 = j left(KD_Vorname.j,10) left(KD_Name.j,10) left(KD_Strasse.j,20) left(KD_PLZ.j,5) left(KD_Ort.j,15);
  1944.                             Zeile = Zeile + 1;
  1945.                             IF Zeile > B_laenge THEN
  1946.                                 DO;
  1947.                                     WRITELN(Druckdat,Z.6);
  1948.                                     WRITELN(Druckdat,Z.7);
  1949.                                     Zeile = 3;
  1950.                                 END;
  1951.                             WRITELN(Druckdat,Z.1);
  1952.                         END;
  1953.                         Z.1 = LF || "Ende der Auflistung";
  1954.                         WRITELN(Druckdat,Z.1);
  1955.                         CLOSE(Druckdat);
  1956.                         IF Druckart = ltxt.1 THEN
  1957.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport
  1958.                         ELSE IF Druckart = ltxt.3 THEN
  1959.                             address COMMAND AnzeigePGM "t:Druck";
  1960.                     END;
  1961.             END;
  1962.         WHEN msgid3 = 23 | msgcode3 = 65 | msgcode3 = 97 THEN
  1963.             DO;
  1964.                 jahr = rtgetlong(, , "Für welches Jahr soll gedruckt werden :", , ,"rtgl_min = 1 rtgl_may = 9999");
  1965.                 Druckfile = "t:Druck"
  1966.                 IF Druckart = ltxt.1 THEN
  1967.                     Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent);
  1968.                 ELSE IF Druckart = ltxt.2 then
  1969.                     DO;
  1970.                         Druckfile = Druckverz || "Einnahmen." || jahr;
  1971.                         Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent);
  1972.                     END;
  1973.                 ELSE
  1974.                     Ergebnis = 1;
  1975.                 IF Ergebnis > 0 then
  1976.                     DO;
  1977.                         Z.6    = "Re.Nr  Datum      Ku.Nr  Art.Nr Anzahl     E.Preis       Summe    Endsumme"
  1978.                         Z.7    = Copies("-",74);
  1979.                         jahr_l    = LENGTH(jahr);
  1980.                         Endsumme    = 0;
  1981.                         MWSt        = 0;
  1982.                         Druckdat    = "Einnahmen";
  1983.                         OPEN(Druckdat,Druckfile,'write');
  1984.                         WRITELN(Druckdat,D_Rueck || Z.6);
  1985.                         WRITELN(Druckdat,Z.7);
  1986.                         Zeile = 3;
  1987.                         Z.6 = FF || Z.6;
  1988.                         DO k = 1 to (R_max - 1);
  1989.                             l = right("000000" || k,6);
  1990.                             IF jahr = right(RE_Datum.l,jahr_l) THEN
  1991.                                 DO;
  1992.                                     UEB_RechNr = l;
  1993.                                     CALL UP_R_Berechnung;
  1994.                                     Z.1 = l RE_Datum.l RE_Kunde.l RE_Art.1.l right(RE_Anz.1.l,6) right(ZW_Epreis.1,11) right(ZW_Summe.1,11);
  1995.                                     ZEILE = ZEILE + 1;
  1996.                                     IF Zeile >= B_laenge THEN
  1997.                                         DO;
  1998.                                             WRITELN(Druckdat,Z.6);
  1999.                                             WRITELN(Druckdat,Z.7);
  2000.                                             Zeile = 3;
  2001.                                         END;
  2002.                                     WRITELN(Druckdat,Z.1);
  2003.                                     DO i = 2 TO 12;
  2004.                                         IF RE_Anz.i.l > 0 THEN
  2005.                                             DO;
  2006.                                                 Z.1 = Copies(" ",24) RE_Art.i.l right(RE_Anz.i.l,6) right(ZW_Epreis.i,11) right(ZW_Summe.i,11);
  2007.                                                 ZEILE = ZEILE + 1;
  2008.                                                 IF Zeile >= B_laenge THEN
  2009.                                                     DO;
  2010.                                                         WRITELN(Druckdat,Z.6);
  2011.                                                         WRITELN(Druckdat,Z.7);
  2012.                                                         Zeile = 3;
  2013.                                                     END;
  2014.                                                 WRITELN(Druckdat,Z.1);
  2015.                                             END;
  2016.                                     END;
  2017.                                     Z.1 = Copies(" ",24) right(RE_Art.13.l,6) right(RE_Anz.13.l,6) right(ZW_Epreis.13,11) right(ZW_Summe.13,11) right(ZW_Endsumme,11) LF;
  2018.                                     ZEILE = ZEILE + 2;
  2019.                                     IF Zeile >= B_laenge THEN
  2020.                                         DO;
  2021.                                             WRITELN(Druckdat,Z.6);
  2022.                                             WRITELN(Druckdat,Z.7);
  2023.                                             Zeile = 3;
  2024.                                         END;
  2025.                                     WRITELN(Druckdat,Z.1);
  2026.                                     Endsumme    = Endsumme    + ZW_Endsumme;
  2027.                                     MWSt        = MWSt        + ZW_MWSt;
  2028.                                     ENetto    = Endsumme    - MWSt;
  2029.                                 END;
  2030.                         END;
  2031.                         Z.1 = Copies("-",74);
  2032.                         Z.2 = "Endsumme (Netto)  =" Copies(" ",38) right(ENetto,15);
  2033.                         Z.3 = "Mehrwertsteuer    =" Copies(" ",38) right(MWSt,15);
  2034.                         Z.4 = "Endsumme (Brutto) =" Copies(" ",38) right(Endsumme,15);
  2035.                         Z.5 = Copies("=",74);
  2036.                         IF Zeile > (B_laenge - 6) THEN
  2037.                             DO;
  2038.                                 WRITELN(Druckdat,Z.6);
  2039.                                 WRITELN(Druckdat,Z.7);
  2040.                                 Zeile = 3;
  2041.                             END;
  2042.                         DO i = 1 TO 5;
  2043.                             WRITELN(Druckdat,Z.i);
  2044.                         END;
  2045.                         CLOSE(Druckdat);
  2046.                         IF Druckart = ltxt.1 THEN
  2047.                             address COMMAND "run >NIL: copy t:Druck FF to" Druckport;
  2048.                         ELSE IF Druckart = ltxt.3 THEN
  2049.                             address COMMAND AnzeigePGM "t:Druck";
  2050.                     END;
  2051.             END;
  2052.         WHEN msgclass3 = CLOSEWINDOW | msgcode3 = 27 THEN
  2053.             extime3 = 1;
  2054.         OTHERWISE
  2055.             NOP;
  2056.     END;
  2057. RETURN 1;
  2058.  
  2059. Auswertung4:
  2060.     SELECT
  2061.         WHEN msgcode4    = 86 | msgcode4 = 118 THEN
  2062.             ACTIVATEGADID(10,w4,null());
  2063.         WHEN msgid4        = 10 THEN
  2064.             ZW_VorName    = GETSTRGAD(w4,10,null());
  2065.         WHEN msgcode4    = 78 | msgcode4 = 110 THEN
  2066.             ACTIVATEGADID(11,w4,null());
  2067.         WHEN msgid4        = 11 THEN
  2068.             ZW_Name     = GETSTRGAD(w4,11,null());
  2069.         WHEN msgcode4    = 83 | msgcode4 = 115 THEN
  2070.             ACTIVATEGADID(12,w4,null());
  2071.         WHEN msgid4        = 12 THEN
  2072.             ZW_Strasse    = GETSTRGAD(w4,12,null());
  2073.         WHEN msgcode4    = 80 | msgcode4 = 112 THEN
  2074.             ACTIVATEGADID(13,w4,null());
  2075.         WHEN msgid4        = 13 THEN
  2076.             ZW_PLZ        = GETSTRGAD(w4,13,null());
  2077.         WHEN msgcode4    = 79 | msgcode4 = 111 THEN
  2078.             ACTIVATEGADID(14,w4,null());
  2079.         WHEN msgid4        = 14 THEN
  2080.             ZW_Ort        = GETSTRGAD(w4,14,null());
  2081.         WHEN msgcode4    = 76 | msgcode4 = 108 THEN
  2082.             ACTIVATEGADID(15,w4,null());
  2083.         WHEN msgid4        = 15 THEN
  2084.             ZW_Land        = GETSTRGAD(w4,15,null());
  2085.         WHEN msgcode4    = 71 | msgcode4 = 103 THEN
  2086.             ACTIVATEGADID(16,w4,null());
  2087.         WHEN msgid4        = 16 THEN
  2088.             ZW_GebTag    = GETSTRGAD(w4,16,null());
  2089.         WHEN msgcode4    = 84 | msgcode4 = 116 THEN
  2090.             ACTIVATEGADID(17,w4,null());
  2091.         WHEN msgid4        = 17 THEN
  2092.             ZW_Tel        = GETSTRGAD(w4,17,null());
  2093.         WHEN msgcode4    = 70 | msgcode4 = 102 THEN
  2094.             ACTIVATEGADID(18,w4,null());
  2095.         WHEN msgid4        = 18 THEN
  2096.             ZW_Fax        = GETSTRGAD(w4,18,null());
  2097.         WHEN msgcode4    = 220 | msgcode4 = 252 THEN
  2098.             ACTIVATEGADID(19,w4,null());
  2099.         WHEN msgid4        = 19 THEN
  2100.             ZW_Dfue        = GETSTRGAD(w4,19,null());
  2101.         WHEN msgcode4    = 49 THEN
  2102.             ACTIVATEGADID(20,w4,null());
  2103.         WHEN msgid4        = 20 THEN
  2104.             ZW_EMail1    = GETSTRGAD(w4,20,null());
  2105.         WHEN msgcode4    = 50 THEN
  2106.             ACTIVATEGADID(21,w4,null());
  2107.         WHEN msgid4        = 21 THEN
  2108.             ZW_EMail2    = GETSTRGAD(w4,21,null());
  2109.         WHEN msgcode4    = 51 THEN
  2110.             ACTIVATEGADID(22,w4,null());
  2111.         WHEN msgid4        = 22 THEN
  2112.             ZW_EMail3    = GETSTRGAD(w4,22,null());
  2113.         WHEN msgcode4    = 65 | msgcode4 = 97 THEN
  2114.             ACTIVATEGADID(23,w4,null());
  2115.         WHEN msgid4        = 23 THEN
  2116.             ZW_Anrede    = GETSTRGAD(w4,23,null());
  2117.         WHEN msgcode4    = 66 | msgcode4 = 98 THEN
  2118.             ACTIVATEGADID(24,w4,null());
  2119.         WHEN msgid4        = 24 THEN
  2120.             ZW_BAnr        = GETSTRGAD(w4,24,null());
  2121.         WHEN msgcode4    = 75 | msgcode4 = 107 THEN
  2122.             ACTIVATEGADID(25,w4,null());
  2123.         WHEN msgid4        = 25 THEN
  2124.             ZW_Komm        = GETSTRGAD(w4,25,null());
  2125.         WHEN msgcode4    = 46 | msgcode4 = 58 THEN
  2126.             ACTIVATEGADID(26,w4,null());
  2127.         WHEN msgid4        = 26 THEN
  2128.             ZW_BankBez    = GETSTRGAD(w4,26,null());
  2129.         WHEN msgcode4    = 90 | msgcode4 = 122 THEN
  2130.             ACTIVATEGADID(27,w4,null());
  2131.         WHEN msgid4        = 27 THEN
  2132.             ZW_BLZ        = GETSTRGAD(w4,27,null());
  2133.         WHEN msgcode4    = 42 | msgcode4 = 43 THEN
  2134.             ACTIVATEGADID(28,w4,null());
  2135.         WHEN msgid4 = 28 THEN
  2136.             ZW_Konto        = GETSTRGAD(w4,28,null());
  2137.         WHEN msgcode4    = 85 | msgcode4 = 117 THEN
  2138.             ACTIVATEGADID(29,w4,null());
  2139.         WHEN msgid4        = 29 THEN
  2140.             ZW_BankKurz = GETSTRGAD(w4,29,null());
  2141.         WHEN msgcode4    = 82 | msgcode4 = 114 THEN
  2142.             ACTIVATEGADID(30,w4,null());
  2143.         WHEN msgid4 = 30 THEN
  2144.             ZW_Rabatt   = GETSTRGAD(w4,30,null());
  2145.         WHEN msgid4 = 40 | msgcode4 = 73 | msgcode4 = 105 THEN
  2146.             DO;
  2147.                 CALL UP_Kunde_OK;
  2148.                 Druckart = GETVALUE(mlabels2,msgcode4*4,4,'s');
  2149.                 SELECT;
  2150.                     WHEN Druckart = "Firma" THEN
  2151.                         DO;
  2152.                             CALL OffGadget(41,w4,null());
  2153.                             CALL OffGadget(42,w4,null());
  2154.                             CALL OffGadget(43,w4,null());
  2155.                             CALL OffGadget(44,w4,null());
  2156.                             CALL OffGadget(45,w4,null());
  2157.                             CALL UP_Firma_alles;
  2158.                             CALL UP_ReErst_fuellen;
  2159.                         END;
  2160.                     OTHERWISE
  2161.                         DO;
  2162.                             CALL OnGadget(41,w4,null());
  2163.                             CALL OnGadget(42,w4,null());
  2164.                             CALL OnGadget(43,w4,null());
  2165.                             CALL OnGadget(44,w4,null());
  2166.                             CALL OnGadget(45,w4,null());
  2167.                             CALL UP_Kunden_alles;
  2168.                             CALL UP_ReErst_fuellen;
  2169.                         END;
  2170.                 END;
  2171.             END;
  2172.         WHEN msgcode4 = 72 | msgcode4 = 104 THEN
  2173.             ACTIVATEGADID(41,w4,null());
  2174.         WHEN msgid4 = 41 THEN
  2175.             DO;
  2176.                 Test = GETSTRGAD(w4,41,null());
  2177.                 IF Test = ZW_Suchen | Druckart = "Firma" THEN
  2178.                     NOP;
  2179.                 ELSE IF Test = "" THEN
  2180.                     ZW_Suchen = "";
  2181.                 ELSE
  2182.                     DO;
  2183.                         CALL UP_Kunde_OK;
  2184.                         j = LENGTH(Test);
  2185.                         x = "Nein";
  2186.                         Test = UPPER(Test);
  2187.                         DO I = 1 TO K_max;
  2188.                             I = right("000000" || I,6);
  2189.                             IF POS(Test,UPPER(KD_VorName.I)),
  2190.                                 + POS(Test,UPPER(KD_Name.I)),
  2191.                                 + POS(Test,UPPER(KD_Strasse.I)),
  2192.                                 + POS(Test,UPPER(KD_PLZ.I)),
  2193.                                 + POS(Test,UPPER(KD_Ort.I)),
  2194.                                 + POS(Test,UPPER(KD_Land.I)),
  2195.                                 + POS(Test,UPPER(KD_GebTag.I)),
  2196.                                 + POS(Test,UPPER(KD_Tel.I)),
  2197.                                 + POS(Test,UPPER(KD_Fax.I)),
  2198.                                 + POS(Test,UPPER(KD_Dfue.I)),
  2199.                                 + POS(Test,UPPER(KD_EMail1.I)),
  2200.                                 + POS(Test,UPPER(KD_EMail2.I)),
  2201.                                 + POS(Test,UPPER(KD_EMail3.I)),
  2202.                                 + POS(Test,UPPER(KD_Anrede.I)),
  2203.                                 + POS(Test,UPPER(KD_BAnr.I)),
  2204.                                 + POS(Test,UPPER(KD_Komm.I)),
  2205.                                 + POS(Test,UPPER(KD_BankBez.I)),
  2206.                                 + POS(Test,UPPER(KD_BLZ.I)),
  2207.                                 + POS(Test,UPPER(KD_Konto.I)),
  2208.                                 + POS(Test,UPPER(KD_BankKurz.I)) > 0 THEN
  2209.                                 DO;
  2210.                                     x = I;
  2211.                                     I = K_max;
  2212.                                 END;
  2213.                         END;
  2214.                         ZW_Suchen = Test;
  2215.                         IF x = "Nein" THEN
  2216.                             rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent);
  2217.                         ELSE
  2218.                             DO;
  2219.                                 ZW_KundenNr = x;
  2220.                                 CALL UP_Kunden_alles;
  2221.                                 CALL UP_ReErst_fuellen;
  2222.                             END;
  2223.                     END;
  2224.             END;
  2225.         WHEN msgcode4 = 47 | msgcode4 = 55 THEN
  2226.             ACTIVATEGADID(43,w4,null());
  2227.         WHEN msgid4 = 42 | msgcode4 = 67 | msgcode4 = 99 THEN
  2228.             IF ZW_Tel > "" THEN
  2229.                 DO;
  2230.                     rtezrequest("ARexx Port von WilhelmTEL fehlt leider noch!",,,ReqCent);
  2231.                 END;
  2232.             ELSE
  2233.                 rtezrequest("Nö, ohne Telefonnummer geht hier nix!",,,ReqCent);
  2234.         WHEN msgid4 = 43 THEN
  2235.             DO;
  2236.                 Test = GETSTRGAD(w4,43,null());
  2237.                 IF Test = ZW_KundenNr | Druckart = "Firma" THEN
  2238.                     NOP;
  2239.                 ELSE
  2240.                     DO;
  2241.                         CALL UP_Kunde_OK;
  2242.                         ZW_KundenNr = right("000000" || TEST,6)
  2243.                         IF DATATYPE(ZW_KundenNr,'n') THEN
  2244.                             DO;
  2245.                                 IF ZW_KundenNr > K_max  THEN
  2246.                                     ZW_KundenNr = K_max;
  2247.                                 ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6);
  2248.                             END;
  2249.                         ELSE
  2250.                             DO;
  2251.                                 rtezrequest("Kundennummer nicht numerisch, bitte prüfen!",,,ReqCent);
  2252.                                 ZW_KundenNr = "000001";
  2253.                             END;
  2254.                         CALL UP_Kunden_alles;
  2255.                         CALL UP_ReErst_fuellen;
  2256.                     END;
  2257.             END;
  2258.         WHEN msgid4 = 44 | msgcode4 = 62 THEN
  2259.             DO;
  2260.                 IF Druckart = "Firma" THEN
  2261.                     NOP;
  2262.                 ELSE
  2263.                     DO;
  2264.                         IF ZW_Suchen = "" THEN
  2265.                             DO;
  2266.                                 Test = ZW_KundenNr + 1;
  2267.                                 CALL UP_Kunde_OK;
  2268.                                 ZW_KundenNr = right("000000" || Test,6);
  2269.                                 IF ZW_KundenNr > K_max THEN
  2270.                                     ZW_KundenNr = K_max;
  2271.                                 ELSE
  2272.                                     DO;
  2273.                                         CALL UP_Kunden_alles;
  2274.                                         CALL UP_ReErst_fuellen;
  2275.                                     END;
  2276.                             END;
  2277.                         ELSE
  2278.                             DO;
  2279.                                 x = "Nein";
  2280.                                 DO I = (ZW_KundenNr + 1) TO (K_max-1);
  2281.                                 I = right("000000" || I,6);
  2282.                                 ZW_Suchen = UPPER(ZW_Suchen);
  2283.                                 IF POS(ZW_Suchen,UPPER(KD_VorName.I)),
  2284.                                     + POS(ZW_Suchen,UPPER(KD_Name.I)),
  2285.                                     + POS(ZW_Suchen,UPPER(KD_Strasse.I)),
  2286.                                     + POS(ZW_Suchen,UPPER(KD_PLZ.I)),
  2287.                                     + POS(ZW_Suchen,UPPER(KD_Ort.I)),
  2288.                                     + POS(ZW_Suchen,UPPER(KD_Land.I)),
  2289.                                     + POS(ZW_Suchen,UPPER(KD_GebTag.I)),
  2290.                                     + POS(ZW_Suchen,UPPER(KD_Tel.I)),
  2291.                                     + POS(ZW_Suchen,UPPER(KD_Fax.I)),
  2292.                                     + POS(ZW_Suchen,UPPER(KD_Dfue.I)),
  2293.                                     + POS(ZW_Suchen,UPPER(KD_EMail1.I)),
  2294.                                     + POS(ZW_Suchen,UPPER(KD_EMail2.I)),
  2295.                                     + POS(ZW_Suchen,UPPER(KD_EMail3.I)),
  2296.                                     + POS(ZW_Suchen,UPPER(KD_Anrede.I)),
  2297.                                     + POS(ZW_Suchen,UPPER(KD_BAnr.I)),
  2298.                                     + POS(ZW_Suchen,UPPER(KD_Komm.I)),
  2299.                                     + POS(ZW_Suchen,UPPER(KD_BankBez.I)),
  2300.                                     + POS(ZW_Suchen,UPPER(KD_BLZ.I)),
  2301.                                     + POS(ZW_Suchen,UPPER(KD_Konto.I)),
  2302.                                     + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN
  2303.                                     DO;
  2304.                                         x = I;
  2305.                                         I = K_max;
  2306.                                     END;
  2307.                             END;
  2308.                             IF x = "Nein" THEN
  2309.                                 rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2310.                             ELSE
  2311.                                 DO;
  2312.                                     ZW_KundenNr = x;
  2313.                                     CALL UP_Kunden_alles;
  2314.                                     CALL UP_ReErst_fuellen;
  2315.                                 END;
  2316.                         END;
  2317.                END;
  2318.             END;
  2319.         WHEN msgid4 = 45 | msgcode4 = 60 THEN
  2320.             DO;
  2321.                 IF Druckart = "Firma" THEN
  2322.                     NOP;
  2323.                 ELSE
  2324.                     DO;
  2325.                         IF ZW_Suchen = "" THEN
  2326.                             DO;
  2327.                                 Test = ZW_KundenNr - 1;
  2328.                                 CALL UP_Kunde_OK;
  2329.                                 ZW_KundenNr = right("000000" || Test,6);
  2330.                                 IF ZW_KundenNr < 000001 THEN
  2331.                                     ZW_KundenNr = "000001";
  2332.                                 ELSE
  2333.                                     DO;
  2334.                                         CALL UP_Kunden_alles;
  2335.                                         CALL UP_ReErst_fuellen;
  2336.                                     END;
  2337.                             END;
  2338.                         ELSE
  2339.                             DO;
  2340.                                 x = "Nein";
  2341.                                 DO I = (ZW_KundenNr - 1) TO 1 BY -1;
  2342.                                     I = right("000000" || I,6);
  2343.                                     ZW_Suchen = UPPER(ZW_Suchen);
  2344.                                     IF POS(ZW_Suchen,UPPER(KD_VorName.I)),
  2345.                                         + POS(ZW_Suchen,UPPER(KD_Name.I)),
  2346.                                         + POS(ZW_Suchen,UPPER(KD_Strasse.I)),
  2347.                                         + POS(ZW_Suchen,UPPER(KD_PLZ.I)),
  2348.                                         + POS(ZW_Suchen,UPPER(KD_Ort.I)),
  2349.                                         + POS(ZW_Suchen,UPPER(KD_Land.I)),
  2350.                                         + POS(ZW_Suchen,UPPER(KD_GebTag.I)),
  2351.                                         + POS(ZW_Suchen,UPPER(KD_Tel.I)),
  2352.                                         + POS(ZW_Suchen,UPPER(KD_Fax.I)),
  2353.                                         + POS(ZW_Suchen,UPPER(KD_Dfue.I)),
  2354.                                         + POS(ZW_Suchen,UPPER(KD_EMail1.I)),
  2355.                                         + POS(ZW_Suchen,UPPER(KD_EMail2.I)),
  2356.                                         + POS(ZW_Suchen,UPPER(KD_EMail3.I)),
  2357.                                         + POS(ZW_Suchen,UPPER(KD_Anrede.I)),
  2358.                                         + POS(ZW_Suchen,UPPER(KD_BAnr.I)),
  2359.                                         + POS(ZW_Suchen,UPPER(KD_Komm.I)),
  2360.                                         + POS(ZW_Suchen,UPPER(KD_BankBez.I)),
  2361.                                         + POS(ZW_Suchen,UPPER(KD_BLZ.I)),
  2362.                                         + POS(ZW_Suchen,UPPER(KD_Konto.I)),
  2363.                                         + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN
  2364.                                         DO;
  2365.                                             x = I;
  2366.                                             I = 0;
  2367.                                         END;
  2368.                                 END;
  2369.                                 IF x = "Nein" THEN
  2370.                                     rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2371.                                 ELSE
  2372.                                     DO;
  2373.                                         ZW_KundenNr = x;
  2374.                                         CALL UP_Kunden_alles;
  2375.                                         CALL UP_ReErst_fuellen;
  2376.                                     END;
  2377.                             END;
  2378.                     END;
  2379.             END;
  2380.         WHEN msgid4 = 46 | msgclass4 = CLOSEWINDOW | msgcode4 = 69 | msgcode4 = 101 | msgcode4 = 27 THEN
  2381.             DO;
  2382.                 CALL UP_Kunde_OK;
  2383.                 extime4 = 1;
  2384.             END;
  2385.         WHEN msgid4 = 47 | msgcode4 = 68 | msgcode4 = 100 THEN
  2386.             DO;
  2387.                 CALL UP_Kunde_OK;
  2388.                 CALL UP_Drucken;
  2389.             END;
  2390.         WHEN msgid4 = 48 THEN
  2391.             DO;
  2392.                 Druckart = GETVALUE(mlabels4,msgcode4*4,4,'s');
  2393.                 SELECT;
  2394.                     WHEN Druckart = "Firma" THEN
  2395.                         CALL UP_Firma_alles;
  2396.                     WHEN Druckart = "Kunden" THEN
  2397.                         CALL UP_Kunden_alles;
  2398.                     OTHERWISE
  2399.                         NOP;
  2400.                 END;
  2401.                 CALL UP_ReErst_fuellen;
  2402.             END;
  2403.         OTHERWISE
  2404.             NOP;
  2405.     END;
  2406. RETURN 1;
  2407.  
  2408. Auswertung5:
  2409.     SELECT
  2410.         WHEN msgcode5    = 66 | msgcode5 = 98 THEN
  2411.             ACTIVATEGADID(10,w5,null());
  2412.         WHEN msgid5        = 10 THEN
  2413.             ZW_ArtBez    = GETSTRGAD(w5,10,null());
  2414.         WHEN msgcode5    = 80 | msgcode5 = 112 THEN
  2415.             ACTIVATEGADID(11,w5,null());
  2416.         WHEN msgid5        = 11 THEN
  2417.             ZW_ArtPreis    = GETSTRGAD(w5,11,null());
  2418.         WHEN msgcode5    = 85 | msgcode5 = 117 THEN
  2419.             ACTIVATEGADID(12,w5,null());
  2420.         WHEN msgid5        = 12 THEN
  2421.             ZW_ArtBuch    = GETSTRGAD(w5,12,null());
  2422.         WHEN msgcode5    = 77 | msgcode5 = 109 THEN
  2423.             ACTIVATEGADID(13,w5,null());
  2424.         WHEN msgid5        = 13 THEN
  2425.             DO;
  2426.                 Test        = GETSTRGAD(w5,msgid5,null());
  2427.                 IF Test ~= ZW_ArtMWSt THEN
  2428.                     DO;
  2429.                         IF Test = "1" | Test = "2" | Test = "3" THEN
  2430.                             ZW_ArtMWSt = Test;
  2431.                         ELSE
  2432.                             DO;
  2433.                                 CALL SETSTRGADID(w5,msgid5,ZW_ArtMWSt,null());
  2434.                                 REFRESHGLIST(conxgad5,w5,null(),-1);
  2435.                                 ACTIVATEGADID(msgid5,w5,null());
  2436.                             END;
  2437.                     END;
  2438.             END;
  2439.         WHEN msgcode5    = 72 | msgcode5 = 104 THEN
  2440.             ACTIVATEGADID(41,w5,null());
  2441.         WHEN msgid5        = 41 THEN /* Suchbegriff wurde eingegeben/geändert */
  2442.             DO;
  2443.                 Test = GETSTRGAD(w5,41,null());
  2444.                 IF Test = "" THEN
  2445.                     ZW_Suchen = "";
  2446.                 ELSE
  2447.                     DO;
  2448.                         CALL UP_Artikel_OK;
  2449.                         j = LENGTH(Test);
  2450.                         x = "Nein";
  2451.                         Test = UPPER(Test);
  2452.                         DO I = 1 TO A_max;
  2453.                             I = right("000000" || I,6);
  2454.                             IF POS(Test,UPPER(AR_ArtBez.I)),
  2455.                                 + POS(Test,UPPER(AR_ArtPreis.I)),
  2456.                                 + POS(Test,UPPER(AR_ArtBuch.I)) > 0 THEN
  2457.                                 DO;
  2458.                                     x = I;
  2459.                                     I = A_max;
  2460.                                 END;
  2461.                         END;
  2462.                         ZW_Suchen = Test;
  2463.                         IF x = "Nein" THEN
  2464.                             rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent);
  2465.                         ELSE
  2466.                             DO;
  2467.                                 ZW_ArtikelNr = x;
  2468.                                 CALL UP_Artikel_alles;
  2469.                                 CALL UP_ArtErst_fuellen;
  2470.                             END;
  2471.                     END;
  2472.             END;
  2473.         WHEN msgcode5 = 65 | msgcode5 = 97 THEN
  2474.             ACTIVATEGADID(43,w5,null());
  2475.         WHEN msgid5 = 43 THEN /* Artikelnummer wurde eingegeben/geändert */
  2476.             DO;
  2477.                 Test = GETSTRGAD(w5,43,null());
  2478.                 IF Test = ZW_ArtikelNr THEN
  2479.                     NOP;
  2480.                 ELSE
  2481.                     DO;
  2482.                         CALL UP_Artikel_OK;
  2483.                         ZW_ArtikelNr = Test;
  2484.                         IF DATATYPE(ZW_ArtikelNr,'n') THEN
  2485.                             DO;
  2486.                                 IF ZW_ArtikelNr > A_max  THEN
  2487.                                     ZW_ArtikelNr = A_max;
  2488.                                 ZW_ArtikelNr = RIGHT("000000" || ZW_ArtikelNr,6);
  2489.                             END;
  2490.                         ELSE
  2491.                             DO;
  2492.                                 rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent);
  2493.                                 ZW_ArtikelNr = "000001";
  2494.                             END;
  2495.                         CALL UP_Artikel_alles;
  2496.                         CALL UP_ArtErst_fuellen;
  2497.                     END;
  2498.             END;
  2499.         WHEN msgid5 = 44 | msgcode5 = 62 THEN
  2500.             DO;
  2501.                 IF ZW_Suchen = "" THEN
  2502.                     DO;
  2503.                         Test = ZW_ArtikelNr + 1;
  2504.                         CALL UP_Artikel_OK;
  2505.                         ZW_ArtikelNr = right("000000" || Test,6);
  2506.                         IF ZW_ArtikelNr > A_max THEN
  2507.                             ZW_ArtikelNr = A_max;
  2508.                         ELSE
  2509.                             DO;
  2510.                                 CALL UP_Artikel_alles;
  2511.                                 CALL UP_ArtErst_fuellen;
  2512.                             END;
  2513.                     END;
  2514.                 ELSE
  2515.                     DO;
  2516.                         x = "Nein";
  2517.                         DO I = (ZW_ArtikelNr + 1) TO (A_max-1);
  2518.                             I = right("000000" || I,6);
  2519.                             IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)),
  2520.                                 + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)),
  2521.                                 + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN
  2522.                                 DO;
  2523.                                     x = I;
  2524.                                     I = A_max;
  2525.                                 END;
  2526.                         END;
  2527.                         IF x = "Nein" THEN
  2528.                             rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2529.                         ELSE
  2530.                             DO;
  2531.                                 ZW_ArtikelNr = x;
  2532.                                 CALL UP_Artikel_alles;
  2533.                                 CALL UP_ArtErst_fuellen;
  2534.                             END;
  2535.                     END;
  2536.             END;
  2537.         WHEN msgid5 = 45 | msgcode5 = 60 THEN
  2538.             DO;
  2539.                 IF ZW_Suchen = "" THEN
  2540.                     DO;
  2541.                         Test = ZW_ArtikelNr - 1;
  2542.                         CALL UP_Artikel_OK;
  2543.                         ZW_ArtikelNr = right("000000" || Test,6);
  2544.                         IF ZW_ArtikelNr < 000001 THEN
  2545.                             ZW_ArtikelNr = "000001";
  2546.                         ELSE
  2547.                             DO;
  2548.                                 CALL UP_Artikel_alles;
  2549.                                 CALL UP_ArtErst_fuellen;
  2550.                             END;
  2551.                     END;
  2552.                 ELSE
  2553.                     DO;
  2554.                         x = "Nein";
  2555.                         DO I = (ZW_ArtikelNr - 1) TO 1 BY -1;
  2556.                             I = right("000000" || I,6);
  2557.                             IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)),
  2558.                                 + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)),
  2559.                                 + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN
  2560.                                 DO;
  2561.                                     x = I;
  2562.                                     I = 0;
  2563.                                 END;
  2564.                         END;
  2565.                         IF x = "Nein" THEN
  2566.                             rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent);
  2567.                         ELSE
  2568.                             DO;
  2569.                                 ZW_ArtikelNr = x;
  2570.                                 CALL UP_Artikel_alles;
  2571.                                 CALL UP_ArtErst_fuellen;
  2572.                             END;
  2573.                     END;
  2574.             END;
  2575.         WHEN msgid5 = 46 | msgclass5 = CLOSEWINDOW | msgcode5 = 69 | msgcode5 = 101 | msgcode5 = 27 THEN
  2576.             DO;
  2577.                 CALL UP_Artikel_OK;
  2578.                 extime5 = 1;
  2579.             END;
  2580.         WHEN msgid5 = 47 | msgcode5 = 68 | msgcode5 = 100 THEN
  2581.             DO;
  2582.                 CALL UP_Artikel_OK;
  2583.                 CALL UP_Drucken;
  2584.             END;
  2585.         WHEN msgid5 = 48 THEN
  2586.             DO;
  2587.                 CALL UP_Artikel_alles;
  2588.                 CALL UP_ArtErst_fuellen;
  2589.             END;
  2590.         OTHERWISE
  2591.             NOP;
  2592.     END;
  2593. RETURN 1;
  2594.  
  2595. Auswertung6:
  2596.     SELECT
  2597.         WHEN msgcode6    = 33 | msgcode6 = 49 THEN
  2598.             ACTIVATEGADID(10,w6,null());
  2599.         WHEN msgid6        = 10 THEN
  2600.             DO;
  2601.                 Test        = GETSTRGAD(w6,msgid6,null());
  2602.                 IF Test ~= MWSt_Satz.1 THEN
  2603.                     DO;
  2604.                         IF datatype(Test,'n') THEN
  2605.                             MWSt_Satz.1 = Test;
  2606.                         ELSE
  2607.                             MWSt_Satz.1 = 15.0;
  2608.                         CALL SETSTRGADID(w6,msgid6,MWSt_Satz.1,null());
  2609.                         REFRESHGLIST(conxgad6,w6,null(),-1);
  2610.                         MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1);
  2611.                     END;
  2612.             END;
  2613.         WHEN msgcode6    = 34 | msgcode6    = 50 THEN
  2614.             ACTIVATEGADID(11,w6,null());
  2615.         WHEN msgid6        = 11 THEN
  2616.             DO;
  2617.                 Test        = GETSTRGAD(w6,msgid6,null());
  2618.                 IF Test ~= MWSt_Satz.2 THEN
  2619.                     DO;
  2620.                         IF datatype(Test,'n') THEN
  2621.                             MWSt_Satz.2 = Test;
  2622.                         ELSE
  2623.                             MWSt_Satz.2 = 7.0;
  2624.                         CALL SETSTRGADID(w6,msgid6,MWSt_Satz.2,null());
  2625.                         REFRESHGLIST(conxgad6,w6,null(),-1);
  2626.                         MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2);
  2627.                     END;
  2628.             END;
  2629.         WHEN msgcode6    = 87 | msgcode6 =    119 | msgid6    = 12  THEN
  2630.             DO;
  2631.                 Test = rtfilerequest("SYS:Utilities",,"Anzeigeprogramm bestimmen");
  2632.                 IF Test > 0 THEN
  2633.                     DO;
  2634.                         AnzeigePGM = Test
  2635.                         CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(AnzeigePGM,12),apen,0,jam2,scrfont);
  2636.                     END;
  2637.             END;
  2638.         WHEN msgcode6    = 80 | msgcode4 = 112 THEN
  2639.             ACTIVATEGADID(14,w4,null());
  2640.         WHEN msgid6        = 14 THEN
  2641.             Druckport    = GETSTRGAD(w6,msgid6,null());
  2642.         WHEN msgcode6    = 88 | msgcode4 = 120 THEN
  2643.             ACTIVATEGADID(15,w6,null());
  2644.         WHEN msgid6        = 15 THEN
  2645.             DO;
  2646.                 Test        = GETSTRGAD(w6,msgid6,null());
  2647.                 IF Test ~= D_XAbst THEN
  2648.                     DO;
  2649.                         IF datatype(Test,'w') THEN
  2650.                             D_XAbst = Test;
  2651.                         ELSE
  2652.                             DO;
  2653.                                 D_XAbst = 1;
  2654.                                 CALL SETSTRGADID(w6,msgid6,D_XAbst,null());
  2655.                                 REFRESHGLIST(conxgad6,w6,null(),-1);
  2656.                             END;
  2657.                     END;
  2658.             END;
  2659.         WHEN msgcode6    = 89 | msgcode6 = 121 THEN
  2660.             ACTIVATEGADID(16,w4,null());
  2661.         WHEN msgid6        = 16 THEN
  2662.             DO;
  2663.                 Test        = GETSTRGAD(w6,msgid6,null());
  2664.                 IF Test ~= D_YAbst THEN
  2665.                     DO;
  2666.                         IF datatype(Test,'w')  THEN
  2667.                             D_YAbst = Test;
  2668.                         ELSE
  2669.                             DO;
  2670.                                 D_YAbst = 1;
  2671.                                 CALL SETSTRGADID(w6,msgid6,D_YAbst,null());
  2672.                                 REFRESHGLIST(conxgad6,w6,null(),-1);
  2673.                             END;
  2674.                     END;
  2675.             END;
  2676.         WHEN msgid6        = 17 THEN
  2677.             DO;
  2678.                 IF D_Durch = "J" THEN
  2679.                     D_Durch = "N";
  2680.                 ELSE
  2681.                     D_Durch = "J";
  2682.             END;
  2683.         WHEN msgid6 = 18 | msgclass6 = CLOSEWINDOW | msgcode6 = 69 | msgcode6 = 101 | msgcode6 = 27 THEN
  2684.             extime6 = 1;
  2685.         OTHERWISE
  2686.             NOP;
  2687.     END;
  2688. RETURN 1;
  2689.  
  2690. UP_Kunden_alles:
  2691.     ZW_VorName    = KD_VorName.ZW_KundenNr;
  2692.     ZW_Name        = KD_Name.ZW_KundenNr;
  2693.     ZW_Strasse    = KD_Strasse.ZW_KundenNr;
  2694.     ZW_PLZ        = KD_PLZ.ZW_KundenNr;
  2695.     ZW_Ort        = KD_Ort.ZW_KundenNr;
  2696.     ZW_Land        = KD_Land.ZW_KundenNr;
  2697.     ZW_GebTag    = KD_GebTag.ZW_KundenNr;
  2698.     ZW_Tel        = KD_Tel.ZW_KundenNr;
  2699.     ZW_Fax        = KD_Fax.ZW_KundenNr;
  2700.     ZW_Dfue        = KD_Dfue.ZW_KundenNr;
  2701.     ZW_EMail1    = KD_EMail1.ZW_KundenNr;
  2702.     ZW_EMail2    = KD_EMail2.ZW_KundenNr;
  2703.     ZW_EMail3    = KD_EMail3.ZW_KundenNr;
  2704.     ZW_Anrede    = KD_Anrede.ZW_KundenNr;
  2705.     ZW_BAnr        = KD_BAnr.ZW_KundenNr;
  2706.     ZW_Komm        = KD_Komm.ZW_KundenNr;
  2707.     ZW_BankBez    = KD_BankBez.ZW_KundenNr;
  2708.     ZW_BLZ        = KD_BLZ.ZW_KundenNr;
  2709.     ZW_Konto        = KD_Konto.ZW_KundenNr;
  2710.     ZW_BankKurz    = KD_BankKurz.ZW_KundenNr;
  2711.     ZW_Rabatt    = KD_Rabatt.ZW_KundenNr;
  2712. RETURN;
  2713.  
  2714. UP_Firma_alles:
  2715.     ZW_VorName    = FI_VorName;
  2716.     ZW_Name        = FI_Name;
  2717.     ZW_Strasse    = FI_Strasse;
  2718.     ZW_PLZ        = FI_PLZ;
  2719.     ZW_Ort        = FI_Ort;
  2720.     ZW_Land        = FI_Land;
  2721.     ZW_GebTag    = FI_GebTag;
  2722.     ZW_Tel        = FI_Tel;
  2723.     ZW_Fax        = FI_Fax;
  2724.     ZW_Dfue        = FI_Dfue;
  2725.     ZW_EMail1    = FI_EMail1;
  2726.     ZW_EMail2    = FI_EMail2;
  2727.     ZW_EMail3    = FI_EMail3;
  2728.     ZW_Anrede    = FI_Anrede;
  2729.     ZW_BAnr        = FI_BAnr;
  2730.     ZW_Komm        = FI_Komm;
  2731.     ZW_BankBez    = FI_BankBez;
  2732.     ZW_BLZ        = FI_BLZ;
  2733.     ZW_Konto        = FI_Konto;
  2734.     ZW_BankKurz    = FI_BankKurz;
  2735.     ZW_Rabatt    = FI_Rabatt;
  2736. RETURN;
  2737.  
  2738. UP_ReErst_fuellen:
  2739.     CALL SETSTRGADID(w4,10,ZW_VorName,null());
  2740.     CALL SETSTRGADID(w4,11,ZW_Name,null());
  2741.     CALL SETSTRGADID(w4,12,ZW_Strasse,null());
  2742.     CALL SETSTRGADID(w4,13,ZW_PLZ,null());
  2743.     CALL SETSTRGADID(w4,14,ZW_Ort,null());
  2744.     CALL SETSTRGADID(w4,15,ZW_Land,null());
  2745.     CALL SETSTRGADID(w4,16,ZW_GebTag,null());
  2746.     CALL SETSTRGADID(w4,17,ZW_Tel,null());
  2747.     CALL SETSTRGADID(w4,18,ZW_Fax,null());
  2748.     CALL SETSTRGADID(w4,19,ZW_Dfue,null());
  2749.     CALL SETSTRGADID(w4,20,ZW_EMail1,null());
  2750.     CALL SETSTRGADID(w4,21,ZW_EMail2,null());
  2751.     CALL SETSTRGADID(w4,22,ZW_EMail3,null());
  2752.     CALL SETSTRGADID(w4,23,ZW_Anrede,null());
  2753.     CALL SETSTRGADID(w4,24,ZW_BAnr,null());
  2754.     CALL SETSTRGADID(w4,25,ZW_Komm,null());
  2755.     CALL SETSTRGADID(w4,26,ZW_BankBez,null());
  2756.     CALL SETSTRGADID(w4,27,ZW_BLZ,null());
  2757.     CALL SETSTRGADID(w4,28,ZW_Konto,null());
  2758.     CALL SETSTRGADID(w4,29,ZW_BankKurz,null());
  2759.     CALL SETSTRGADID(w4,30,ZW_Rabatt,null());
  2760.     CALL SETSTRGADID(w4,43,ZW_KundenNr,null());
  2761.     CALL SETSTRGADID(w4,41,ZW_Suchen,null());
  2762.     REFRESHGLIST(conxgad4,w4,null(),-1);
  2763. RETURN;
  2764.  
  2765. UP_Kunde_OK:
  2766.     SELECT;
  2767.         WHEN Druckart = "Firma" THEN
  2768.             DO;
  2769.                 FI_VorName    = ZW_VorName;
  2770.                 FI_Name        = ZW_Name;
  2771.                 FI_Strasse    = ZW_Strasse;
  2772.                 FI_PLZ        = ZW_PLZ;
  2773.                 FI_Ort        = ZW_Ort;
  2774.                 FI_Land        = ZW_Land;
  2775.                 FI_GebTag    = ZW_GebTag;
  2776.                 FI_Tel        = ZW_Tel;
  2777.                 FI_Fax        = ZW_Fax;
  2778.                 FI_Dfue        = ZW_Dfue;
  2779.                 FI_EMail1    = ZW_EMail1;
  2780.                 FI_EMail2    = ZW_EMail2;
  2781.                 FI_EMail3    = ZW_EMail3;
  2782.                 FI_Anrede    = ZW_Anrede;
  2783.                 FI_BAnr        = ZW_BAnr;
  2784.                 FI_Komm        = ZW_Komm;
  2785.                 FI_BankBez    = ZW_BankBez;
  2786.                 FI_BLZ        = ZW_BLZ;
  2787.                 FI_Konto        = ZW_Konto;
  2788.                 FI_BankKurz    = ZW_BankKurz;
  2789.                 FI_Rabatt    = ZW_Rabatt;
  2790.             END;
  2791.         WHEN Druckart = "Kunden" THEN
  2792.             DO;
  2793.                 KD_VorName.ZW_KundenNr    = ZW_VorName;
  2794.                 KD_Name.ZW_KundenNr        = ZW_Name;
  2795.                 KD_Strasse.ZW_KundenNr    = ZW_Strasse;
  2796.                 KD_PLZ.ZW_KundenNr        = ZW_PLZ;
  2797.                 KD_Ort.ZW_KundenNr        = ZW_Ort;
  2798.                 KD_Land.ZW_KundenNr        = ZW_Land;
  2799.                 KD_GebTag.ZW_KundenNr    = ZW_GebTag;
  2800.                 KD_Tel.ZW_KundenNr        = ZW_Tel;
  2801.                 KD_Fax.ZW_KundenNr        = ZW_Fax;
  2802.                 KD_Dfue.ZW_KundenNr        = ZW_Dfue;
  2803.                 KD_EMail1.ZW_KundenNr    = ZW_EMail1;
  2804.                 KD_EMail2.ZW_KundenNr    = ZW_EMail2;
  2805.                 KD_EMail3.ZW_KundenNr    = ZW_EMail3;
  2806.                 KD_Anrede.ZW_KundenNr    = ZW_Anrede;
  2807.                 KD_BAnr.ZW_KundenNr        = ZW_BAnr;
  2808.                 KD_Komm.ZW_KundenNr        = ZW_Komm;
  2809.                 KD_BankBez.ZW_KundenNr    = ZW_BankBez;
  2810.                 KD_BLZ.ZW_KundenNr        = ZW_BLZ;
  2811.                 KD_Konto.ZW_KundenNr        = ZW_Konto;
  2812.                 KD_BankKurz.ZW_KundenNr    = ZW_BankKurz;
  2813.                 KD_Rabatt.ZW_KundenNr    = ZW_Rabatt;
  2814.             END;
  2815.         OTHERWISE
  2816.             NOP;
  2817.     END;
  2818.     IF ZW_Name > "" & ZW_KundenNr = K_max then
  2819.         DO;
  2820.             K_max = K_max + 1;
  2821.             CALL UP_K_max_init;
  2822.         END;
  2823.     ELSE IF ZW_Name = "" & ZW_KundenNr = (K_max -1) then
  2824.         DO;
  2825.             K_max = ZW_KundenNr;
  2826.             CALL UP_K_max_init;
  2827.         END;
  2828.     DefGads4 = 2;
  2829. RETURN;
  2830.  
  2831. UP_Artikel_alles:
  2832.     ZW_ArtBez    = AR_ArtBez.ZW_ArtikelNr;
  2833.     ZW_ArtPreis    = AR_ArtPreis.ZW_ArtikelNr;
  2834.     ZW_ArtBuch    = AR_ArtBuch.ZW_ArtikelNr;
  2835.     ZW_ArtMWSt    = AR_ArtMWSt.ZW_ArtikelNr;
  2836. RETURN;
  2837.  
  2838. UP_ArtErst_fuellen:
  2839.     CALL SETSTRGADID(w5,10,ZW_ArtBez,null());
  2840.     CALL SETSTRGADID(w5,11,ZW_ArtPreis,null());
  2841.     CALL SETSTRGADID(w5,12,ZW_ArtBuch,null());
  2842.     CALL SETSTRGADID(w5,13,ZW_ArtMWSt,null());
  2843.     CALL SETSTRGADID(w5,43,ZW_ArtikelNr,null());
  2844.     REFRESHGLIST(conxgad5,w5,null(),-1);
  2845. RETURN;
  2846.  
  2847. UP_Artikel_OK:
  2848.     IF AR_ArtBez.ZW_ArtikelNr    = ZW_ArtBez &,
  2849.         AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis &,
  2850.         AR_ArtBuch.ZW_ArtikelNr    = ZW_ArtBuch &,
  2851.         AR_ArtMWSt.ZW_ArtikelNr    = ZW_ArtMWSt THEN
  2852.         NOP;
  2853.     ELSE;
  2854.         DO;
  2855.             AR_ArtBez.ZW_ArtikelNr    = ZW_ArtBez;
  2856.             AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis;
  2857.             AR_ArtBuch.ZW_ArtikelNr    = ZW_ArtBuch;
  2858.             AR_ArtMWSt.ZW_ArtikelNr    = ZW_ArtMWSt;
  2859.             IF ZW_ArtBez > "" & ZW_ArtikelNr = A_max then
  2860.                 DO;
  2861.                     A_max = A_max + 1;
  2862.                     CALL UP_A_max_init;
  2863.                 END;
  2864.             ELSE IF ZW_ArtBez = "" & ZW_ArtikelNr = A_max - 1 then
  2865.                 DO;
  2866.                     A_max = A_max - 1;
  2867.                     CALL UP_A_max_init;
  2868.                 END;
  2869.             DefGads5 = 2;
  2870.         END;
  2871. RETURN;
  2872.  
  2873. UP_Rechnung_OK:
  2874.     Art_gr_null = 0;
  2875.     IF RE_Kunde.UEB_RechNr ~= ZW_KundenNr THEN
  2876.         DO;  
  2877.             RE_Kunde.UEB_RechNr = ZW_KundenNr;
  2878.             DefGads2 = 2;
  2879.         END;
  2880.     DO z = 1 to I_Max;
  2881.         IF RE_Art.z.UEB_RechNr ~= ZW_Art_Nr.z |,
  2882.             RE_Anz.z.UEB_RechNr ~= ZW_Art_Anz.z THEN
  2883.             DO;
  2884.                 RE_Art.z.UEB_RechNr = ZW_Art_Nr.z;
  2885.                 RE_Anz.z.UEB_RechNr = ZW_Art_Anz.z;
  2886.                 DefGads2 = 2;
  2887.             END;
  2888.         IF ZW_Art_Nr.z > "" THEN
  2889.             Art_gr_null = 1;
  2890.     END;
  2891.     IF Art_gr_null = 1 & UEB_RechNr = R_max THEN
  2892.         DO; 
  2893.             R_max = R_max + 1;
  2894.             CALL UP_Rech_max_init;
  2895.         END;
  2896.     ELSE IF Art_gr_null = 0 & UEB_RechNr = (R_max - 1) THEN
  2897.         DO;
  2898.             R_max = R_max - 1;
  2899.             CALL UP_Rech_max_init;
  2900.         END;
  2901. RETURN;
  2902.  
  2903. UP_R_Berechnung:
  2904.     ZW_MWSt = 0;
  2905.     ZW_Endsumme = 0;
  2906.     ZW_Rab = 0;
  2907.     ZW_KundenNr = RE_Kunde.UEB_RechNr;
  2908.     ZW_Rabatt = KD_Rabatt.ZW_KundenNr
  2909.     IF ~DATATYPE(ZW_Rabatt,'n') THEN
  2910.         ZW_Rabatt = 0;
  2911.     ZW_Rabatt = ZW_Rabatt / 100;
  2912.     DO j = 1 to I_Max;
  2913.         ZW_Art_Nr.j = RE_Art.j.UEB_RechNr;
  2914.         IF ZW_Art_Nr.j > "" THEN
  2915.             DO;
  2916.                 x                = ZW_Art_Nr.j;
  2917.                 ZW_EPreis.j    = AR_ArtPreis.x;
  2918.                 ZW_ArtBez.j    = AR_ArtBez.x;
  2919.                 ZW_Menge.j    = RE_Anz.j.UEB_RechNr;
  2920.                 ZW_Summe.j  = (ZW_EPreis.j * ZW_Menge.j) + 0.005;
  2921.                 IF ZW_Summe.j < 0 THEN
  2922.                     ZW_Summe.j  = ZW_Summe.j - 0.01;
  2923.                 ZW_Summe.j    = trunc(ZW_Summe.j,2);
  2924.                 ZW_Rab        = ZW_Rab + (ZW_Summe.j * ZW_Rabatt);
  2925.                 ZW_Summe.j    = right(ZW_Summe.j,10);
  2926.                 ZW_Endsumme    = ZW_Endsumme + ZW_Summe.j;
  2927.                 z    = AR_ArtMWSt.x;
  2928.                 ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.z);
  2929.             END;
  2930.         ELSE
  2931.             DO;
  2932.                 ZW_Summe.j    = "";
  2933.                 ZW_Art_Nr.j    = "";
  2934.                 ZW_Art_Bez.j= "";
  2935.                 ZW_EPreis.j    = "";
  2936.                 ZW_ArtBez.j    = "";
  2937.          END;
  2938.     END;
  2939.     ZW_Endsumme    = right(trunc(ZW_Endsumme - ZW_Rab + 0.005,2),10);
  2940.     ZW_Rab        = right(trunc(ZW_Rab + 0.005,2),9);
  2941.     ZW_MWSt        = right(trunc(ZW_MWSt + 0.005,2),9);
  2942. RETURN;
  2943.  
  2944. /* Unterprogramm zum   S P E R R E N   von Texten                            */
  2945. UP_Sperr: procedure expose units;
  2946.     parse arg ZW_Text;
  2947.     Text_Sperr = "";
  2948.     DO i = 1 to length(ZW_Text);
  2949.         Text_Sperr = Text_Sperr || substr(ZW_Text,i,1) || " ";
  2950.     END;
  2951. RETURN Text_Sperr;
  2952.  
  2953. /* Unterprogramm zur Ermittlung des aktuellen Datums                        */
  2954. UP_Datum:procedure;
  2955.     tt = SUBSTR(DATE(s),7,2);                        /* Tag im Monat            */
  2956.     mm = SUBSTR(DATE(s),5,2);                        /* Monat                        */
  2957.     jjjj = right(DATE(n),4);                        /* Jahr und Jahrhundert    */
  2958.     datum = tt || "." || mm || "." || jjjj;    /* zusammenfügen            */
  2959. RETURN datum;
  2960.